赞
踩
好处在于Task<T>可等待,异步的逻辑写起来像是同步的.也不会由于回调过多导致代码可读性降低
对于不想用Android的底层来处理的我,选择使用UnityWebRequest
但是UnityWebRequest的返回值是个UnityWebRequestAsyncOperation
正常来说UnityWebRequestAsyncOperation是不能用await来异步等待的,报错如下
报错里面说到要GetAwaiter
那就实现一个
- public static class ExtensionMethods
- {
- public static TaskAwaiter<object> GetAwaiter(this UnityWebRequestAsyncOperation op)
- {
- var tcs = new TaskCompletionSource<object>();
- op.completed += (obj) =>
- {
- tcs.SetResult(null);
- };
- return tcs.Task.GetAwaiter();
- }
- }
写完以上代码之后就可以 await request.SendWebRequest()了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。