实现这一目标的最简单,最安全的方法是什么?
编辑1
这是我使用的方法:
dispatch_async(dispatch_get_global_queue(disPATCH_QUEUE_PRIORITY_DEFAulT,(unsigned long)NulL),^(voID) { // get background tasks done. [self.background backgroundMethod];});
编辑2
这是我尝试使用@Madboy答案的一个例子.在我在后台执行方法的类中,我有一个指向我的进度条的指针.我们认为这会起作用吗? (请注意对EDIT 1的更改).
@implementation BackgroundClass@synthesize delegate;@synthesize customProgressbar- (voID)backgroundMethod{ // Run tasks}- (voID)delegateSaysBackgroundMethodisFinished{ [self performSelectorOnMainThread:@selector(tasksDone:) withObject:self.customProgressbar waitUntilDone:NO];}@implementation CustomProgressbar- (voID)tasksDone{ // change UI to reflect progress done. }解决方法 这是基于你在做什么.您是否在后台使用GCD执行任务?那你就可以打电话:
dispatch_async(dispatch_get_main_queue(),^{ //your main thread task here});
如果你在NSThread中运行,你可以这样做:
[myObject performSelectorOnMainThread:YOURSELECTOR withObject:YOUROBJECT waitUntilDone:NO];总结
以上是内存溢出为你收集整理的iphone – 在iOS上将消息从后台线程发送到主线程全部内容,希望文章能够帮你解决iphone – 在iOS上将消息从后台线程发送到主线程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)