예제 #1
0
    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();
        }
    }