iphone – 在iOS上将消息从后台线程发送到主线程

iphone – 在iOS上将消息从后台线程发送到主线程,第1张

概述我有一个iOS应用程序,我在后台线程上完成任务.当每个任务完成后,我想向主线程发送一条消息,以便我可以将自定义进度条移动到适当的阶段. 实现这一目标的最简单,最安全的方法是什么? 编辑1 这是我使用的方法: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 我有一个iOS应用程序,我在后台线程上完成任务.当每个任务完成后,我想向主线程发送一条消息,以便我可以将自定义进度条移动到适当的阶段.

实现这一目标的最简单,最安全的方法是什么?

编辑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上将消息从后台线程发送到主线程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1053536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存