unity3d多线程坑


单独起了一个线程来处理网络相关操作,比较常规的做法。本身没啥特别的东西,碰到了一个不大不小的坑折腾了好久,记录下来吧。

简单的说就是子线程中抛出的异常,如果没有catch的话,会导致子线程悄无声息的退出,而u3d主线程没有任何反馈,

只有等到业务逻辑出错的时候才发现哪里出毛病了。

解决方法就是可能抛异常的地方都给catch掉,但是代码很难看,或者直接子线程的主循环里面catch一下,然后输出日志。

但是这样也仅仅只是帮助查看分析出错而已,最终还是需要解决掉的,又牵扯到了另一个问题。

主线程中做这些,

void foo()

{

   // send msg to server

   // balabala1,同时子线程已经再工作了,那么主线程再这里就有可能收到服务器的反馈

   // add server msg handler

   // balabala2 , 但是msg handler这里才添加,那么就会导致子线程调用msg handler的时候抛异常或者出错。。。所以mg handler需要提前添加

}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM