c#中mutex是互斥鎖,位於system.threading 命名空間中。
顧名思義,它是乙個互斥的物件,同一時間只有乙個執行緒可以擁有它,該類還可用於程序間同步的同步基元。
如果當前有乙個執行緒擁有它,在沒有釋放之前,其它執行緒是沒有權利擁有它的。我們可以把mutex看作洗手間,上廁所的人看作執行緒;上廁所的人先進洗手間,擁有使用權,上完廁所之後出來,把洗手間釋放,其他人才可以使用。
執行緒使用mutex.waitone()方法等待c# mutex物件被釋放,如果它等待的c# mutex物件被釋放了,它就自動擁有這個物件,直到它呼叫mutex.releasemutex()方法釋放這個物件,而在此期間,其他想要獲取這個c# mutex物件的執行緒都只有等待。
我們可以利用這個特性來控制乙個應用程式只能執行乙個例項。其他例項由於得不到這個mutex而不能執行。
**如下所示
private static mutex s_mutex = new mutex(); //互斥鎖
public virtual bool raisesource(sourceparameter source, int mpluse = 1)
}catch
system.threading.thread.sleep(retry_delay_time);
icount++;
} while (icount < retry_numbers);
return false;
}finally
}
此外還需說明一點,mutex的name是在系統中是唯一的,也就是上述**中的name,系統依靠這個name屬性來標識唯一的mutex。 C 中Mutex的用法
c 中mutex是互斥鎖,位於system.threading 命名空間中。顧名思義,它是乙個互斥的物件,同一時間只有乙個執行緒可以擁有它,該類還可用於程序間同步的同步基元。如果當前有乙個執行緒擁有它,在沒有釋放之前,其它執行緒是沒有權利擁有它的。我們可以把mutex看作洗手間,上廁所的人看作執行緒...
C 中Mutex的用法
c 中mutex是互斥鎖,位於system.threading 命名空間中。顧名思義,它是乙個互斥的物件,同一時間只有乙個執行緒可以擁有它,該類還可用於程序間同步的同步基元。如果當前有乙個執行緒擁有它,在沒有釋放之前,其它執行緒是沒有權利擁有它的。我們可以把mutex看作洗手間,上廁所的人看作執行緒...
C 互斥鎖Mutex類的用法
c 中mutex是互斥鎖,位於system.threading命名空間中。顧名思義,它是乙個互斥的物件,同一時間只有乙個執行緒可以擁有它,該類還可用於程序間同步的同步基元。如果當前有乙個執行緒擁有它,在沒有釋放之前,其它執行緒是沒有權利擁有它的。我們可以把mutex看作洗手間,上廁所的人看作執行緒 ...