首页主机资讯c# wait 能与Mutex一起用吗

c# wait 能与Mutex一起用吗

时间2025-09-27 04:03:03发布访客分类主机资讯浏览410
导读:是的,C#中的Wait方法可以与Mutex一起使用。Mutex(互斥体)是一种同步原语,用于确保多个线程在访问共享资源时不会发生冲突。Wait方法用于等待一个条件成立或者等待一段时间。 以下是一个使用Mutex和Wait方法的示例: usi...

是的,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()方法用于释放互斥体。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: c# wait 能与Mutex一起用吗
本文地址: https://pptw.com/jishu/709449.html
c# wait 能用于任务并行库吗 c# nullable 怎样处理异常情况

游客 回复需填写必要信息