为了账号安全,请及时绑定邮箱和手机立即绑定

注册到消息中心的方法在哪个线程中执行?

注册到消息中心的方法在哪个线程中执行?

拉莫斯之舞 2019-04-09 20:24:05
我在我的项目中单独建立了一个model类,用来进行数据请求,当数据请求成功时,发送Notification,在viewController中向消息中心注册了对应的执行方法,在这个方法中我做了隐藏MBProgressHuD的操作。但运行的时候Hud却没有隐藏掉,我通过打印日志,发现这个方法中打印的currentThread和主线程中打印的线程信息不一致。所以有几个问题想问:1.注册到消息中心的方法可能不在主线程中执行?在什么情况下不会。2.MBProgressHud在什么特殊情况下隐藏会出现问题?
查看完整描述

2 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{
//后台
dispatch_sync(dispatch_get_main_queue(),^{
//主进程
[hudhide:YESafterDelay:3];
});
});
                            
查看完整回答
反对 回复 2019-04-09
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

解决了,在别的线程中发送的通知,对应的执行方法也是在别的线程中执行,而不是在主线程中执行。
数据请求是在其他线程中执行的,所以这个注册到消息中心的方法也是在别的线程中执行了,所以MBProgressHUD没有隐藏掉。
                            
查看完整回答
反对 回复 2019-04-09
  • 2 回答
  • 0 关注
  • 324 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信