unity如何解决协程开启频繁导致的程序卡顿

一、协程

协程并不会在Unity中开辟新的线程来执行,其执行仍然发生在主线程中。当我们有较为耗时的操作时,可以将该操作分散到几帧或者几秒内完成,而不用在一帧内等这个操作完成后再执行其他操作。

二、协程开启频繁

unity中协程在start前需要判断其是否开启了,否则协程会不断叠加

三、解决方式

解决方式一:
协程start前需要判断是否协程开启了,开启的停止进行重新开启:
即:开启协程前,将之前已经开启的给关闭。
private Coroutine coroutine_setReConnect;
if (coroutine_setReConnect != null)
{
StopCoroutine(coroutine_setReConnect);
coroutine_setReConnect = null;
}
coroutine_setReConnect = StartCoroutine(IE_SetReConnect());

解决方式二:
自己定义一个bool值进行判断协程是否在执行,如果是在执行无法开启协程
开始时判断这个bool是false才能开启协程
if(!bIsStartCoroutine)
A();
private void A()
{

      bIsStartCoroutine = true;StartCoroutine(B() as IEnumerator);}
private IEnumerator B()
{yield return null;bIsStartCoroutine = false;
}

unity如何解决协程开启频繁导致的程序卡顿相关推荐

  1. Unity 协程开启、停止与生命周期

    StopAllCoroutines只会停止调用这个接口的脚本实例对象上的所有协程,而非调用这个接口脚本的所有实例对象. 协程被打断 使用Unity的MonoBehavior组件开启一段协同程序非常方便 ...

  2. goroutine中使用recover,解决协程中出现panic,导致程序崩溃的问题。recover panic 协程的错误处理

    package mainimport ("fmt""time" )//goroutine中使用recover,解决协程中出现panic,导致程序崩溃的问题. f ...

  3. Unity C#笔记 协程详解(转)

    目录 什么是协程 多线程 协程 协程的使用场景 协程使用示例 Invoke的缺陷 协程语法 开启协程 终止协程 挂起 协程的执行原理 什么是协程 在Unity中,协程(Coroutines)的形式是我 ...

  4. Unity线程与协程

    文章目录 前言 一.unity真的不支持多线程吗? 1.unity中使用多线程 2.unity中多线程的停止 3.unity中使用多线程的问题 二.协同程序 1.协程的使用 2.协程的原理 总结 前言 ...

  5. javascript 函数节流 throttle 解决函数被频繁调用、浏览器卡顿的问题

    * 使用setTimeout index.html <html> <head><meta charset="UTF-8"><title&g ...

  6. 解决 js 长任务导致的页面卡顿(时间分片技术)

    时间分片技术 解决 js 长任务导致的页面卡顿 界面操作使用transform动画会使用GPU,不会让界面卡死 解决 js 长任务导致的页面卡顿 在web界面运行长时间代码时,会造成界面卡死,最新看了 ...

  7. 解除映像劫持工具与源码,可解决因映像劫持导致的程序不能运行问题

    显示在红色列表框中为被劫持导致无法运行的程序名(同名程序不能在本机器上正常运行,可通过加号增加对其它程序文件的屏蔽) 显示在绿色列表框中为本软件解除了劫持的程序(可使用重新屏蔽按钮恢复到被劫持状态) ...

  8. 解决UHD620,630等集显运行Solidworks卡顿 (点击特征导致描边卡死)

    一.致谢 首先感谢@二重奏-和 @两三肆,我在此将大神们的方法汇总罗列出来. 二.正文 8代cpu自带的核显UHD620和UHD630等集成显卡没有被SolidWorks支持(Solidworks 官 ...

  9. [iOS]调和 pop 手势导致 AVPlayer 播放卡顿

    作者 NewPan 关注 2017.07.15 14:24* 字数 3110 阅读 749评论 8喜欢 17 声明:我为这个框架写了四篇文章: 第一篇:[iOS]UINavigationControl ...

最新文章

  1. css样式脱离标准文档流
  2. DFTug Test_point
  3. Windows线程同步机制的区别与比较及进程通信方法
  4. 去掉烦人的“正在配置Windows”
  5. Spring 由构造函数自动装配
  6. linux的ctrl alt f6的作用,Linux(Centous6.4)操作系统中,快捷键Alt+Ctrl+F10是什么作用?...
  7. mysql 基本概念学习(时间,事务)
  8. [Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn)...
  9. 理解node.js(Understanding node.js)
  10. 基于PHP构建OAuth 2.0 认证平台
  11. 微信小程序引入iconfont图标
  12. 逆向分析商业软件 010 Editor 及注册机编写
  13. wps在线预览接口_Office在线预览及PDF在线预览的实现方式大集合
  14. java 求tan角度求值_知道sin、cos、tan的角度如何求值,不用计算器
  15. Android kernel中wakeup_sources解析
  16. 电脑锁屏卡死以及任务栏卡死的解决办法
  17. 尤雨溪:Vue 3 将成为新的默认版本
  18. 从Spring源码探究IOC初始化流程
  19. 手机怎么进ph_关于pH调整的有效方法
  20. 初创的云平台公司是否需要设立运维岗

热门文章

  1. 手把手教你使用Python解决简单的zip文件解压密码
  2. 入手评测 惠普暗影精灵 7怎么样
  3. Mac系统 用文本编辑html代码的方法
  4. PowerBI 新手入门 ---- 新建一个表(直接输入或粘贴表内容)
  5. Romberg积分法计算定积分(Matlab程序)
  6. 低配电脑适合学计算机网络吗,让低配电脑保持流畅而不出现卡顿的做法,你学会了吗?...
  7. 手机内置摄像头接线图解_购买苹果手机要小心,这4部不值得入手,我劝你还是别买了...
  8. 高赛德尔迭代法matlab程序,高斯赛德尔迭代法matlab编程
  9. LQ0065 k倍区间【前缀和+余数定理】
  10. 【μC/OS-Ⅲ】μC/OS-Ⅲ OSTaskCreate()函数