中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c# wait 能用于任務調度嗎

c#
小樊
81
2024-11-26 09:43:16
欄目: 編程語言

在C#中,Wait方法通常用于等待某個操作完成,例如等待一個線程完成執行。然而,它也可以用于任務調度,但需要結合其他同步原語(如ManualResetEventAutoResetEventSemaphoreSlim等)來實現。

以下是一個使用ManualResetEvent實現任務調度的示例:

using System;
using System.Threading;

class Program
{
    static ManualResetEvent taskCompletedEvent = new ManualResetEvent(false);

    static void Task1()
    {
        Console.WriteLine("Task 1 started.");
        Thread.Sleep(2000); // Simulate some work
        Console.WriteLine("Task 1 completed.");
        taskCompletedEvent.Set(); // Signal that task 1 is completed
    }

    static void Task2()
    {
        Console.WriteLine("Task 2 started.");
        taskCompletedEvent.WaitOne(); // Wait for task 1 to complete
        Console.WriteLine("Task 2 completed.");
    }

    static void Main(string[] args)
    {
        Thread task1Thread = new Thread(Task1);
        Thread task2Thread = new Thread(Task2);

        task1Thread.Start();
        task2Thread.Start();

        task1Thread.Join();
        task2Thread.Join();

        Console.WriteLine("All tasks completed.");
    }
}

在這個示例中,我們使用ManualResetEvent來確保Task2Task1完成之后才開始執行。taskCompletedEvent.WaitOne()方法會阻塞當前線程,直到taskCompletedEvent被設置為true。當Task1完成后,我們調用taskCompletedEvent.Set()來通知Task2可以開始執行。

0
丰镇市| 乐山市| 清涧县| 新安县| 双柏县| 博湖县| 江川县| 瑞金市| 清水河县| 金川县| 民权县| 侯马市| 通江县| 南康市| 新兴县| 深水埗区| 南安市| 西充县| 库尔勒市| 闵行区| 广东省| 卓尼县| 阿勒泰市| 伊通| 武川县| 大同县| 兰坪| 华池县| 昭觉县| 卢氏县| 建湖县| 庐江县| 金坛市| 陕西省| 龙海市| 澎湖县| 上高县| 旺苍县| 霍林郭勒市| 沅陵县| 吉木萨尔县|