iOS 从 运行 停止全局队列
iOS stop global queue from running
代码:
dispatch_async(
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
[ServerAPI API_GetChatList:self
withUserId:[self getUserIDFromUserDefaults]
withScheduleId:strGroupId
withType:@"group"];
dispatch_async(dispatch_get_main_queue(), ^{
[self performSelector:@selector(getChatList)
withObject:nil
afterDelay:10];
});
});
我使用 dispatch global queue 为每 10 个调用一个方法 seconds.It 正在工作 fine.The 问题是全局队列在其他控制器中保持 运行 too.How 做我从 运行 停止此操作?如有任何帮助,我们将不胜感激。
你可以保留一个BOOL
属性,在每次调用之前,你检查这个属性。当你想停止时,设置为YES
@property (atomic) BOOL stop;
函数
-(void)getChatList {
if (self.stop) {
return;
}
dispatch_async(
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
//Do something
dispatch_async(dispatch_get_main_queue(), ^{
if (!self.stop) {
[self performSelector:@selector(getChatList)
withObject:nil
afterDelay:10];
}
});
});
}
代码:
dispatch_async(
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
[ServerAPI API_GetChatList:self
withUserId:[self getUserIDFromUserDefaults]
withScheduleId:strGroupId
withType:@"group"];
dispatch_async(dispatch_get_main_queue(), ^{
[self performSelector:@selector(getChatList)
withObject:nil
afterDelay:10];
});
});
我使用 dispatch global queue 为每 10 个调用一个方法 seconds.It 正在工作 fine.The 问题是全局队列在其他控制器中保持 运行 too.How 做我从 运行 停止此操作?如有任何帮助,我们将不胜感激。
你可以保留一个BOOL
属性,在每次调用之前,你检查这个属性。当你想停止时,设置为YES
@property (atomic) BOOL stop;
函数
-(void)getChatList {
if (self.stop) {
return;
}
dispatch_async(
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
//Do something
dispatch_async(dispatch_get_main_queue(), ^{
if (!self.stop) {
[self performSelector:@selector(getChatList)
withObject:nil
afterDelay:10];
}
});
});
}