C#和C++之间互斥锁(Mutex)防冲突的方法

C#和C++之间互斥锁防冲突

目的

用Mutex (互斥锁)在两种语言里面保证数据修改没有竞争。

方法

C++方面

#include 
//创建互斥锁
	HANDLE mutexHandle;
	mutexHandle = CreateMutex(NULL, FALSE, L"myLockName");

//在需要互斥操作的地方:
	//get Mutex,此处INIFINITE表示无限等待,可用有限ms数替代,使得代码更可靠
	WaitForSingleObject(mutexHandle, INFINITE);
	//以下是需要保护单线程操作的代码
	
	//以上是需要保护单线程操作的代码
	//release Mutex
	ReleaseMutex(mutexHandle);

C#方面

using System;
using System.Threading;
//创建互斥锁
var myMutex = new Mutex(false, "myLockName");

//在需要互斥操作的地方:
	//get Mutex,此处-1表示无超时限制,可用有限ms数替代,使得代码更可靠
	myMutex.WaitOne(-1);
	//以下是需要保护单线程操作的代码
	
	//以上是需要保护单线程操作的代码
	//release Mutex
	myMutex.ReleaseMutex();

你可能感兴趣的:(c#,c++,开发语言)