首页 > 其他分享 >PySimpleGUI+多线程

PySimpleGUI+多线程

时间:2023-11-06 13:58:30浏览次数:30  
标签:thread PySimpleGUI Start import 多线程 sg event

# -*- coding: utf-8 -*-
# @Time : 2023/11/6 10:03
# @Author : wangyafeng
# @FileName: 进程和线程2.py
# @Email : [email protected]
# @Software: PyCharm
import threading
import multiprocessing
import PySimpleGUI as sg
import time

def task1():
    """任务1"""
    while True:
        print("Task 1 is working...")
        time.sleep(1)

def task2():
    """任务2"""
    while True:
        print("Task 2 is working...")
        time.sleep(1)

# 创建一个布局
layout = [[sg.Output(size=(40, 10))],
          [sg.Button('Start Tasks1'),sg.Button('Start Tasks2'), sg.Button('Exit')]]

# 创建一个窗口
window = sg.Window('PySimpleGUI Multiple Tasks Example', layout)

# 创建一个线程和进程
thread = None
#process = None

# 按钮点击事件处理程序
while True:
    event, values = window.read()
    if event == 'Exit' or event == sg.WIN_CLOSED:
        break
    if event == 'Start Tasks1':
        if thread and thread.is_alive():
            continue  # 防止多次点击按钮创建多个线程和进程
        thread1 = threading.Thread(target=task1)
        thread1.start()

    if event == 'Start Tasks2':
        if thread and thread.is_alive():
            continue  # 防止多次点击按钮创建多个线程和进程
        thread2 = threading.Thread(target=task2)
        thread2.start()


window.close()

 

标签:thread,PySimpleGUI,Start,import,多线程,sg,event
From: https://www.cnblogs.com/wangyafeng/p/17812351.html

相关文章

  • 听我一句劝,业务代码中,别用多线程。
    你好呀,我是歪歪。前几天我在网上冲浪,看到一个哥们在吐槽,说他工作三年多了,没使用过多线程。虽然八股文背的滚瓜烂熟,但是没有在实际开发过程中写的都是业务代码,没有使用过线程池,心里还是慌得一比。我只是微微一笑,这不是很正常吗?业务代码中一般也使不上多线程,或者说,业务代码中不......
  • ZPN项目 3:使用 Intel ICX 编译多线程动态运行时pyd的失败记录
    使用Pybind11,可以生成供python调用接口的C++动态链接库,该库包含一个符合python启动签名的函数,并以pyd为后缀。编译生成该库,与生成一般C++库基本一致。特殊地,当采用以下全部配置生成时,程序的调用将失败:使用icx-cl编译器(兼容MSVC编译器标识的icx编译器)使用多线程动态运行时标......
  • 有趣的Java之网络多线程——UDP编程
    UDP编程通信基本介绍类DatagramSocket和DatagramPacket【数据包/数据报】实现了基于UDP协议网络程序。UDP数据报通过数据报套接字DatagramSocket发送和接收,系统不保证UDP数据报一定能安全送到目的地,也不确信什么时候可以抵达。DatagramPacket对象封装了UDP数据报,在数据报中包含了发......
  • 一文读懂ReentrantLock在多线程编程中的作用和优点
    引言在当今这个数字化时代,软件开发已经离不开多线程编程。但是,多线程编程也带来了一系列复杂性和挑战,其中最关键的一个问题就是线程同步和互斥。为了应对这个问题,Java语言提供了一些工具,其中最强大的工具之一就是ReentrantLock。本文将对ReentrantLock进行深入探讨,介绍它在多线程编......
  • 深入研究synchronized:解锁高效多线程编程的秘诀
    大家好,我是老七,点个关注吧,将持续更新更多精彩内容!在Java的多线程编程里,让多个线程能够安全、高效地协同工作是非常重要的。而synchronized这个关键字,就是一个很重要的工具,可以帮助我们实现多线程同步。本文会深入讨论synchronized的作用、使用方法、工作原理,以及它和其他锁机制的比......
  • Java多线程
    构造方法//参数最全的构造方法publicThreadPoolExecutor(intcorePoolSize,//核心线程数intmaximumPoolSize,//最大线程数longkeepAliveTime,//非核心线程最长等待新任务的时间TimeUnituni......
  • 01-02异步多线程基础概念
    任何异步多线程都离不开委托delegate--lambda-action/Func委托的异步调用异步多线程:发起调用,不等待结束就直接进入下一行(主线程)动作会有新的线程执行.线程特点特点一:多线程和界面使用(说白了,多线程就是为了给大量计算创建子线程,然后先执行完后面代码)场......
  • C++使用多线程将数据写入文件
    #include<iostream>#include<vector>#include<thread>#include<fstream>//使用多线程将数据写入文件voidwriteToFile(conststd::vector<std::string>&data,conststd::string&filename){//创建一个文件输出流std::ofstreamfile......
  • Task异步多线程
    不废话,直接贴上代码...【1】直接实现多线程:`usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading;usingSystem.Threading.Tasks;namespaceTask异步多线程{classProgram{staticvoidMain(string[]args){......
  • java网络编程与多线程
      一、Java 网络编程网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。java.net包中J2SE的API包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。java.net包中提供了两种常见的网络......