コード例 #1
0
        public void CanceledBeforeResponse()
        {
            IWebClient client           = new WebClientWrapper();
            Uri        uri              = new Uri("http://releases.ubuntu.com/18.04.3/ubuntu-18.04.3-desktop-amd64.iso");
            CancellationTokenSource cts = new CancellationTokenSource(100);

            Directory.CreateDirectory(TestOutputPath);
            string filePath = Path.Combine(TestOutputPath, "CanceledBeforeResponse.iso");

            try
            {
                using (IWebResponseMessage response = client.GetAsync(uri, cts.Token).Result)
                {
                    if (!response.IsSuccessStatusCode)
                    {
                        Assert.Fail($"Error getting response from {uri}: {response.ReasonPhrase}");
                    }
                    Assert.Fail("Didn't throw exception");
                }
            }
            catch (AggregateException ex)
            {
                if (!(ex.InnerException is OperationCanceledException))
                {
                    Assert.Fail("Wrong exception thrown.");
                }
            }
            catch (Exception)
            {
                Assert.Fail("Wrong exception thrown.");
            }
            cts.Dispose();
            client.Dispose();
        }
コード例 #2
0
ファイル: UpdateManager.cs プロジェクト: vector-man/nUpdate
        /// <summary>
        ///     Releases unmanaged and - optionally - managed resources.
        /// </summary>
        /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        protected virtual void Dispose(bool disposing)
        {
            if (!disposing || _disposed)
            {
                return;
            }

            _searchWebClient.Dispose();
            _packageDownloader.Dispose();
            _searchCancellationTokenSource.Dispose();
            _downloadCancellationTokenSource.Dispose();
            _downloadResetEvent.Dispose();
            _disposed = true;
        }