【问题标题】:How to perform Two Operation in main queue如何在主队列中执行两个操作
【发布时间】:2020-07-08 08:12:35
【问题描述】:

我有两个任务需要在主队列上执行,但主队列是串行的,所以我需要一些帮助。

  1. 我正在显示一个进度条,它会一直旋转直到任务未完成

  2. 任务本身需要在主线程上执行,因为它必须访问视图框架并绘制图像。

所以现在的问题是,当主队列执行任务时,它会暂停进度视图。

我无法在后台执行任务,因为它需要在主队列中完成

请推荐

【问题讨论】:

  • 投反对票的请添加原因

标签: ios swift concurrency queue


【解决方案1】:
  1. 您不应该在主线程上执行冗长的任务。
  2. 您可以在背景中进行绘图,只要它不影响可见视图。
  3. 后台任务完成后,切换回主线程以在屏幕上显示结果,并移除活动指示器。

【讨论】:

  • 如果我从后台线程访问任何视图,Xcode 会开始给我一个警告
  • 不确定您要达到的目标。后台线程应该与视图无关。如果要绘制,请在图像缓冲区中绘制,完成后更新 DispatchQueue.main.async 中的视图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-01
  • 2019-11-28
相关资源
最近更新 更多