溫馨提示×

c# wait 能與Mutex一起用嗎

c#
小樊
102
2024-11-26 10:24:18
欄目: 編程語言

是的,C#中的Wait方法可以與Mutex一起使用。Mutex(互斥體)是一種同步原語,用于確保多個線程在訪問共享資源時不會發生沖突。Wait方法用于等待一個條件成立或者等待一段時間。

以下是一個使用MutexWait方法的示例:

using System;
using System.Threading;

class Program
{
    static Mutex mutex = new Mutex();
    static int sharedResource = 0;

    static void Main()
    {
        Thread thread1 = new Thread(Thread1);
        Thread thread2 = new Thread(Thread2);

        thread1.Start();
        thread2.Start();

        thread1.Join();
        thread2.Join();
    }

    static void Thread1()
    {
        mutex.WaitOne(); // 等待互斥體被釋放

        for (int i = 0; i < 100000; i++)
        {
            sharedResource++;
        }

        Console.WriteLine("Thread 1 finished.");

        mutex.ReleaseMutex(); // 釋放互斥體
    }

    static void Thread2()
    {
        mutex.WaitOne(); // 等待互斥體被釋放

        for (int i = 0; i < 100000; i++)
        {
            sharedResource--;
        }

        Console.WriteLine("Thread 2 finished.");

        mutex.ReleaseMutex(); // 釋放互斥體
    }
}

在這個示例中,我們創建了兩個線程thread1thread2,它們都會訪問和修改共享資源sharedResource。為了避免競爭條件,我們使用Mutex來確保同一時間只有一個線程可以訪問共享資源。mutex.WaitOne()方法用于等待互斥體被釋放,mutex.ReleaseMutex()方法用于釋放互斥體。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女