2

如何取消performSelectorOnMainThread

我有这个代码:

myClass = [[MyClass alloc] init];

[myClass performSelectorOnMainThread:@selector(setupPlayer) withObject:nil waitUntilDone:YES];
4

2 回答 2

3

根据文档

您无法使用此方法取消排队的消息。

于 2012-04-17T19:29:14.503 回答
2

如果您对最初将消息排队的线程很小心,您可以+ (void)cancelPreviousPerformRequestsWithTarget:(id)aTarget通过调用同一线程来取消它。之前的答案缺少一个重要的部分:

您无法使用此方法取消排队的消息。如果您想要取消当前线程上的消息的选项,您必须使用 performSelector:withObject:afterDelay: 或 performSelector:withObject:afterDelay:inModes: 方法。

于 2012-04-18T04:34:12.590 回答