Swift主线程处理UI事件

应用场景

iOS机制规定,当处理UI事件时,需要在主线程中进行,比如刷新页面,添加控件等。

若把一些计算等耗时操作在子线程处理完成后,再回到主线程处理UI事件时,需要先切换到主线程。

核心逻辑/代码

保证UI事件在主线程中执行,可以直接使用DispatchQueue.main.async{}处理。

这里在使用这个代码之前先用Thread.current.isMainThread判断当前线程是否已经是主线程,如果不是,再调用DispatchQueue.main.async{}执行UI事件。

这样的处理,是为了减少不必要的线程切换的开支

示例代码

funcUIEventAtMain(){//判断当前线程是否是主线程ifThread.current.isMainThread{//UI事件}else{//切换到main线程,处理DispatchQueue.main.async{UIEventAtMain()//结束事件,防止造成递归循环return}}}


转载请注明:http://www.aierlanlan.com/cyrz/6667.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了