Python中如何使用SetEvent()函数实现事件置位
发布时间:2023-12-27 19:06:27
在Python中,可以使用win32event库中的SetEvent()函数实现事件置位。SetEvent()函数用于将一个事件对象的状态设置为已触发状态,可以通知等待这个事件的线程继续执行。
下面是一个使用SetEvent()函数实现事件置位的例子:
import win32event
import threading
# 创建一个事件对象
event = win32event.CreateEvent(None, 0, 0, None)
def wait_for_event(event):
# 等待事件触发
print("等待事件触发")
result = win32event.WaitForSingleObject(event, win32event.INFINITE)
print("收到事件触发信号")
# 创建一个线程来等待事件触发
thread = threading.Thread(target=wait_for_event, args=(event,))
thread.start()
# 延时一段时间后触发事件
import time
time.sleep(5)
win32event.SetEvent(event)
# 等待线程结束
thread.join()
在这个例子中,首先创建了一个事件对象event,然后创建了一个线程thread,该线程会等待这个事件触发。当事件触发后,线程会继续执行并打印“收到事件触发信号”。
在主线程中,延时5秒后调用SetEvent(event)函数来触发事件。这样等待事件的线程就会收到事件触发信号,并继续执行。
需要注意的是,SetEvent()函数只能触发一个事件对象,如果有多个线程等待不同的事件对象,需要使用多个事件对象和SetEvent()函数来实现。
