public struct AckMsg<T>
{
public bool cancel;
public T msg;
public AckMsg(T msg, bool cancel)
{
this.msg = msg;
this.cancel = cancel;
}
}
public class RcvMsgTest
{
public int id;
}
public static async Task<AckMsg<T>> RefTypeAddTask<T>()
{
var tcs = new TaskCompletionSource<T>();
Debug.Log("Send---b");
var task = tcs.Task;
await task;
return new AckMsg<T>((T)tcs.Task.Result, false);
}
热更新部分调用Enter方法,奇怪的是我将Send2函数内容放到Send方法里面就正常
public static async void Enter()
{
await Send<RcvMsgTest>();
}
public static async Task<AckMsg<T>> Send<T>()
{
return await Send2<T>();
}
public static async Task<AckMsg<T>> Send2<T>()
{
var tcs = new TaskCompletionSource<T>();
var task = tcs.Task;
await task;
return new AckMsg<T>((T) tcs.Task.Result, false);
}
AOT部分
热更新部分调用Enter方法,奇怪的是我将Send2函数内容放到Send方法里面就正常