如何在pyobj中停止线程

2024-09-28 21:17:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题是:如何阻止线程在pyobjc中运行?你知道吗

问题描述如下:

我有两个按钮,开始和停止。我必须为start按钮创建一个线程,这样当程序启动时,它就不会冻结UI。但是我还需要一个停止按钮来中断当前正在运行的线程。你知道吗

代码如下:

@objc.IBAction

    def start_(self,sender):
        NSThread.detachNewThreadSelector_toTarget_withObject_(self.testThread, self, 1)

    def stop_(self,sender):
        ????????

    def testThread(self):
        #doing something...

如果有人能给我指出正确的方向并帮助我,我将不胜感激。你知道吗


Tags: 代码self程序uidefpyobjc线程按钮
1条回答
网友
1楼 · 发布于 2024-09-28 21:17:31

你可以用Objective-C中的方法来做

通常,您需要显式地启动一个新线程来跟踪线程对象,然后使用线程的cancel方法请求线程停止,最后向“testThread”添加常规检查,检查线程是否被取消。你知道吗

据我所知,除了杀死POSIX级pthread之外,NSThread没有强制取消线程的方法。后一种选择将导致内存管理问题(也可能是锁定问题),因为被终止的线程将无法在其自身之后进行清理。你知道吗

另请参见:

相关问题 更多 >