Unityでワンソースなシステム開発:UnityでManualResetEventとかwhileループとかを使うと固まる

Posted on Posted in 趣味的なIT・ネットの話題

MSDNのTCP非同期サーバーのサンプルコードをUnity上で動かそうと移植していたら、Unity自体が固まって強制終了せざるを得なくなるという現象が発生。

ロジックを追っていくとまずwhileの無限ループがあると固まることが判明。開発環境上でPlayするときはアプリは別スレッドで動かしてくれたらいいのにと思うのですが。何か理由があるんでしょうかね。

でwhileを抜いて実行してみてもやっぱり固まる。今度はManualResetEventでWaitOneしているときに固まることが判明。もちろんSetされたら復活するのですが、その間停止するのはアプリとして問題ですから使わない方がいいですね。今回のコードではManualResetEvent自体が不要そうなので丸ごと消しましたが、どうしても必要な場合はスレッドを作った方が良さそうです。


Facebooktwittergoogle_pluspinterestlinkedinmail
納得したらすぐにシェア!