private async void GetTexFromAsyncThread2() { var clientTex = new HttpClient { Timeout = TimeSpan.FromSeconds(5) }; HttpResponseMessage responseTex = null; try { await Task.Run(async() => { responseTex = await clientTex.GetAsync(ImgUrlAsyncThread); responseTex.EnsureSuccessStatusCode(); //用来抛异常的 if (responseTex != null && responseTex.IsSuccessStatusCode) { ++_curCountAsyncThread; if (_curCountAsyncThread < _maxCount) { GetTexFromAsyncThread(); } else { _sw.Stop(); } MainThread.AddTask(() => { UpdateProgressAndTime("asyncThread", _curCountAsyncThread, _sw.ElapsedMilliseconds.ToString()); }); } }); } catch (Exception e) { Debug.LogError(e.Message); } finally { clientTex.Dispose(); responseTex?.Dispose(); } }