C#.NET Task 实现后台执行示例

在 C# 中,您可以通过将 Task 的 TaskCreationOptions 设置为 TaskCreationOptions.LongRunning 或 TaskCreationOptions.RunContinuationsAsynchronously,以指示将任务分配给新的线程或线程池并在后台运行。

以下是使用 TaskCreationOptions.LongRunning 方式实现后台执行的示例代码:

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

class Program
{
    static void Main(string[] args)
    {
        // 使用 TaskCreationOptions.LongRunning 创建一个后台执行的 Task 对象
        Task task = Task.Factory.StartNew(
            () =>
            {
                Console.WriteLine("开始执行任务...");
                Thread.Sleep(5000);
                Console.WriteLine("任务执行完毕。");
            },
            CancellationToken.None,
            TaskCreationOptions.LongRunning,
            TaskScheduler.Default);

        Console.WriteLine("主线程继续执行...");
        Console.ReadLine();
    }
}

在上述代码中,我们使用 Task.Factory.StartNew 方法创建了一个后台执行的 Task 对象,并通过 TaskCreationOptions.LongRunning 选项指示分配给新的线程执行。任务执行时将休眠 5 秒,以模拟执行长时间任务的情况。

另外,使用 TaskCreationOptions.RunContinuationsAsynchronously 选项也可以实现后台执行,例如:

using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // 使用 TaskCreationOptions.RunContinuationsAsynchronously 创建一个后台执行的 Task 对象
        Task task = Task.Run(async () =>
        {
            Console.WriteLine("开始执行任务...");
            await Task.Delay(5000);
            Console.WriteLine("任务执行完毕。");
        }, TaskCreationOptions.RunContinuationsAsynchronously);

        Console.WriteLine("主线程继续执行...");
        Console.ReadLine();
    }
}

希望这些示例代码可以帮助您实现 C# Task 后台执行。