温馨提示×

C#任务延时与超时的处理方法

c#
小樊
84
2024-06-25 01:03:27
栏目: 编程语言

在C#中,可以使用Task.Delay方法来实现任务延时的功能,可以指定延时时间后执行相应的操作。另外,也可以使用CancellationToken来取消延时任务,以避免超时情况。

下面是一个简单的示例代码,演示了如何在C#中实现任务的延时和超时处理:

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

class Program
{
    static async Task Main()
    {
        // 延时任务
        await Task.Delay(2000); // 2秒延时

        Console.WriteLine("延时任务完成!");

        // 超时任务
        var cts = new CancellationTokenSource();
        var token = cts.Token;

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

        // 模拟任务超时
        if (await Task.WhenAny(timeoutTask) == timeoutTask)
        {
            Console.WriteLine("任务超时!");
        }
        else
        {
            // 执行正常操作
            Console.WriteLine("任务完成!");
        }
    }
}

在上面的示例中,我们首先使用Task.Delay方法实现了一个2秒的延时任务。然后使用CancellationTokenTask.Delay方法来实现了一个3秒的超时任务。当任务超时时,会输出"任务超时!“;当任务在规定时间内完成时,会输出"任务完成!”。

0