进程子类无法在窗口中运行



我正在运行一个程序,该程序启动一个进程,队列来回发送信息。我无法在 Windows 中启动一个类(从 Process 中子类化)(它适用于 linux)。代码的简化版本是:

from multiprocessing import Process, Queue
class Client( Process ):
    def __init__( self, q ):
        super( Client, self ).__init__()
        self._q = q
    def run( self ):
        self.startClient()
    def startClient( self ):
        self._q.put( 'abc' )
class Other( object ):
    def start( self ):
        self.q = Queue()
        self.client = Client( self.q )
        self.client.start()

启动进程(客户端)不会导致调用"run"(因此 startClient)。

我知道一个简单的解决方案是使用主入口点(如果__name__ == ' __main__ ':),但这是一个更大程序的一部分,不能通过该入口点访问。

有没有其他方法可以让它在窗口上工作?

如果主模块未使用if __name__ == '__main__':并且您不想更改它,请创建一个新的主模块,像这样导入旧的主模块,并通过运行新的主模块来启动应用程序:

if __name__ == '__main__':
    import main_module

最新更新