时间:2020.9.29,XMoba第一次Demo
子线程调用UNITY的相关变量或函数导致程序执行过程断掉,且不报任何错误的一个BUG
一,问题现象
网络异步连接的回调函数中使用了一个函数XLog.log,此函数中使用了UNITY的Time.FrameCount,导致程序执行到这一行时异常退出,但不报任何错误。
void OnConnectCallback(IAsyncResult iar)
{
netState = XNetState.ConnectReturn;
var info = tcpClient.Connected ? $"【服务器连接成功】" : $"【服务器连接失败】";
XLog.Log(E_LogModule.Net, $"{info}, {curIp},{curPort},{netState}");
try
{
tcpClient.EndConnect(iar);
if (tcpClient.Connected)
{
tcpClient.GetStream().BeginRead(tempBuffer, 0, tempBuffer.Length, OnReceiveCallback, null); //开始接收
}
}
catch (Exception e)
{
UnityEngine.Debug.LogError($"【网络接收出错】{curIp},{