分类: unity |
有几日,主程用.net的socket作网络通讯的小demo,用了一个简单的socket,两个线程,一个接收线程,一个发送线程。 html
代码大概这样: 网络
Connecto是封装了.ne socket的一个单例。看起来没有什么问题,运行也正常。可是第二次运行的时候,unity编辑器就假死(未影响)了。开始觉得是mono支持的.net版本问题,最后发现是unity在关闭调试的时候程序的线程没有关闭。应该是unity单线程中,多线程不没控制。以前的socket还链接着的,第二次再次链接让socket阻塞,致使unity假死。 多线程
解决方法: socket
只要在unity销毁对象的时候,把线程kill就好了。固然是在OnDestroy()了。可是主程说好像kill不了,线程有保护什么的(这里反正我不懂-_-!!)。以后在OnDestroy()里把以前的socket给断开。
这样就能够了。 编辑器
不过有时候仍是会假死,不知道是多线程的问题仍是unity自己的问题,可是几率低了不少,基本比你电脑死机高一点。 this