C#任務(wù)延時(shí)與超時(shí)的處理方法

c#
小樊
324
2024-06-25 01:03:27
欄目: 編程語言

在C#中,可以使用Task.Delay方法來實(shí)現(xiàn)任務(wù)延時(shí)的功能,可以指定延時(shí)時(shí)間后執(zhí)行相應(yīng)的操作。另外,也可以使用CancellationToken來取消延時(shí)任務(wù),以避免超時(shí)情況。

下面是一個(gè)簡(jiǎn)單的示例代碼,演示了如何在C#中實(shí)現(xiàn)任務(wù)的延時(shí)和超時(shí)處理:

using System;
using System.Threading;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        // 延時(shí)任務(wù)
        await Task.Delay(2000); // 2秒延時(shí)

        Console.WriteLine("延時(shí)任務(wù)完成!");

        // 超時(shí)任務(wù)
        var cts = new CancellationTokenSource();
        var token = cts.Token;

        var timeoutTask = Task.Delay(3000, token);

        // 模擬任務(wù)超時(shí)
        if (await Task.WhenAny(timeoutTask) == timeoutTask)
        {
            Console.WriteLine("任務(wù)超時(shí)!");
        }
        else
        {
            // 執(zhí)行正常操作
            Console.WriteLine("任務(wù)完成!");
        }
    }
}

在上面的示例中,我們首先使用Task.Delay方法實(shí)現(xiàn)了一個(gè)2秒的延時(shí)任務(wù)。然后使用CancellationTokenTask.Delay方法來實(shí)現(xiàn)了一個(gè)3秒的超時(shí)任務(wù)。當(dāng)任務(wù)超時(shí)時(shí),會(huì)輸出"任務(wù)超時(shí)!“;當(dāng)任務(wù)在規(guī)定時(shí)間內(nèi)完成時(shí),會(huì)輸出"任務(wù)完成!”。

0