python循环线程调用事件处理程序,但事件方法不起作用

问题描述

我正在使用python开发程序。

该程序从主线程开始,其循环为1秒无限循环。

某些条件为True,然后调用事件处理程序方法

但是事件处理程序不起作用,仅运行主线程。

class MainClass:

    def Start(self):

        while True:

            if condition == True:
                self.objCur = CpPBCur()
                self.objCur.Subscribe(val1,self)

            time.sleep(1)


class CpPBCur(CpPublish):
    def __init__(self):
        super().__init__("cur","DsCbo1.Cur")


class CpPublish:
    def __init__(self,name,serviceID):
        self.name = name
        self.obj = win32com.client.dispatch(serviceID)
        self.bIsSB = False

    def Subscribe(self,var,parent):
        if self.bIsSB:
            self.Unsubscribe()

        if (len(var) > 0):
            self.obj.SetInputValue(0,var)

        handler = win32com.client.WithEvents(self.obj,CpEvent)
        handler.set_params(self.obj,self.name,parent)
        self.obj.Subscribe()
        self.bIsSB = True

class CpEvent:
    
    def ReceiveEvent(self):
        do something...


if __name__ == "__main__":
    myCls = MainClass()
    myCls.Start()
    

我的计划是在某些条件成立的情况下

调用Subscribe方法并从CpEvent类接收事件。同时,主线程

是保持循环并检查状况。

如何操作事件处理程序,使其不会与线程挂起?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)