阅读量:2
是的,C#中的Wait方法可以与Mutex一起使用。Mutex(互斥体)是一种同步原语,用于确保多个线程在访问共享资源时不会发生冲突。Wait方法用于等待一个条件成立或者等待一段时间。
以下是一个使用Mutex和Wait方法的示例:
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(); // 释放互斥体
}
}
在这个示例中,我们创建了两个线程thread1和thread2,它们都会访问和修改共享资源sharedResource。为了避免竞争条件,我们使用Mutex来确保同一时间只有一个线程可以访问共享资源。mutex.WaitOne()方法用于等待互斥体被释放,mutex.ReleaseMutex()方法用于释放互斥体。
以上就是关于“c# wait 能与Mutex一起用吗”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm