【问题标题】:UIProgressView update in background threadUIProgressView 在后台线程中更新
【发布时间】:2017-11-15 02:05:53
【问题描述】:

我必须在 MainThread 上调用函数来计算一些东西。当计算过程运行时,我可以调用 UIProgressView 来更新 UI。

当我只调用更新函数时,它正在工作,但最后更新UI

我使用performSelectorInBackground 调用更新函数,它工作正常

为什么使用performSelectorInBackground可以工作

click here to show GIF

我见过这个What's happen if control UI by performSelectorInBackground?,但它不能解释为什么performSelectorInBackground 工作。

示例代码
https://github.com/g78101/progressViewTest

【问题讨论】:

    标签: objective-c iphone multithreading user-interface uiview


    【解决方案1】:

    我找到了一些灵​​魂

    From the doc:
    [myObj performSelectorInBackground:@selector(doSomething) withObject:nil];
    调用该方法的效果与调用NSThreaddetachNewThreadSelector:toTarget:withObject:方法效果相同,参数为当前对象、选择器和参数对象。

    BackgroundThread 只是改变 UI 值,更新 UI 正在 mainThread 上运行。

    只要 NSThrad 就可以工作

    我认为原因是 NSThrad 的框架比 GCD 更简单

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 2013-11-23
      • 2015-03-20
      • 2014-04-18
      • 2011-12-25
      • 1970-01-01
      相关资源
      最近更新 更多