1. 程式人生 > 其它 >在C#中使用CancellationTokenSource設定超時時間

在C#中使用CancellationTokenSource設定超時時間

C#中的CancellationTokenSource類可以通過CancelAfter方法設定超時時間,因此可以用於非同步方法中的超時設定。

測試程式碼:

class Program
{
    static async Task Main(string[] args)
    {
        using (var tokenSource = new CancellationTokenSource())
        {
            //設定超時時間
            tokenSource.CancelAfter(1000);

            var stopWatch = new
Stopwatch(); stopWatch.Start(); await SampleFunctionAsync(tokenSource.Token); stopWatch.Stop(); if (tokenSource.Token.IsCancellationRequested) { Console.WriteLine(@"IsCancellationRequested"); } Console.WriteLine($
"SampleFunctionAsync takes {stopWatch.ElapsedMilliseconds}ms."); } Console.ReadKey(); } private static async Task SampleFunctionAsync(CancellationToken token) { try { await Task.Delay(2000, token); } catch (Exception e) { Console.WriteLine($
@"SampleFunctionAsync exception: {e.Message}"); } } }

測試結果: