gpt4 book ai didi

iphone - 如何停止nsthread

转载 作者:行者123 更新时间:2023-12-03 19:35:06 26 4
gpt4 key购买 nike

我正在使用线程在应用程序的后台更新消息。该线程在我的消息类中启动。

消息.m

timerThread = [[NSThread alloc] initWithTarget:self
selector:@selector(startTimerThread:) object:nil];
[timerThread start];

现在我希望线程在用户注销应用程序时停止。为此,我在注销方法(在另一个类中)中添加了

Messages *msg=[[Messages alloc]init];  
[msg.timerThread cancel];
[msg release];

但即使退出应用程序后,线程仍在运行。

最佳答案

[timerThread cancel] 不会停止线程,它只是将其标记为已取消。我认为您的 startTimerThread: 执行某种无限循环。您必须定期检查此循环中的 isCancelled ,如果是"is",您应该执行一些清理操作并中断此循环。

顺便说一句,如果您不经常执行更新,则在主线程中运行 NSTimer 并在回调上分离新线程会更方便(例如 [self PerformSelectorInBackground:@selector(updateMessages:) withObject:whatever]) 或启动 NSOperation 的实例。

关于iphone - 如何停止nsthread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5193062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com