var request = (HttpWebRequest)WebRequest.Create("https://www.example.com"); request.Timeout = 5000; // Set timeout duration to 5 seconds var tokenSource = new CancellationTokenSource(); var task = Task.Run(() => { request.GetResponse(); }, tokenSource.Token); if (await Task.WhenAny(task, Task.Delay(request.Timeout)) == task) { // Completed } else { tokenSource.Cancel(); }
private CancellationTokenSource _cancellationTokenSource; private async void btnCancel_Click(object sender, EventArgs e) { if(_cancellationTokenSource != null && !_cancellationTokenSource.IsCancellationRequested) { _cancellationTokenSource.Cancel(); } } private async void btnSend_Click(object sender, EventArgs e) { var request = (HttpWebRequest)WebRequest.Create("https://www.example.com"); _cancellationTokenSource = new CancellationTokenSource(); var task = Task.Run(() => { request.GetResponse(); }, _cancellationTokenSource.Token); }In this example, we have two buttons `btnSend` and `btnCancel`. We create an HTTP request on `btnSend` button click event. We have used the `CancellationTokenSource` class to cancel the request on `btnCancel` button click event. Package Library: System.Net.Http.