iOS-确保在主线程上执行[重复]

2020/11/25 01:41 · ios ·  · 0评论

我想知道如何function主线程调用我

如何确保function主线程上调用了my

(这是我之前的问题)。

有什么规则可以确保我的应用程序仅在主线程中执行自己的代码?

通常,您不需要做任何事情来确保这一点–您的事情清单通常就足够了。除非您与某个恰好会产生线程并在后台运行代码的API进行交互,否则您将在主线程上运行。

如果您确实要确定,可以执行以下操作

[self performSelectorOnMainThread:@selector(myMethod:) withObject:anObj waitUntilDone:YES];

在主线程上执行一个方法。(也有等效的GCD。)

This will do it:

[[NSOperationQueue mainQueue] addOperationWithBlock:^ {

   //Your code goes in here
   NSLog(@"Main Thread Code");

}];

Hope this helps!

当您使用iOS> = 4时

dispatch_async(dispatch_get_main_queue(), ^{
  //Your main thread code goes in here
  NSLog(@"Im on the main thread");       
});

我认为这很酷,即使在一般情况下,也可以保留调用方法以确保在正确的线程上进行调用的方法的调用者。

if (![[NSThread currentThread] isMainThread]) {
    [self performSelector:_cmd onThread:[NSThread mainThread] withObject:someObject waitUntilDone:NO];
    return;
}
本文地址:http://ios.askforanswer.com/ios-quebaozaizhuxianchengshangzhixingzhongfu.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!