我對互斥鎖做了一些研究,但找不到任何值得澄清我想要的東西,因爲我能理解。我可以輕鬆地在Linux上使用互斥鎖。但我不知道爲什麼我的互斥鎖不適用於我的應用程序。我也尋找了一些例子,並且實現了它。但沒辦法;Windows Phone互斥問題
這是我的互斥體initilaziation;
public static Mutex mutex = new Mutex(true,"mut");
在這裏,我用我的互斥鎖來鎖定;
private void button4_Click(object sender, RoutedEventArgs e) //Challenge Start/Stop
{
StartLocationService(GeoPositionAccuracy.High);
mutex.WaitOne();
mutex.WaitOne();
MessageBox.Show("I'm in mutex");
///...
}
我這樣做只是爲了看看我的應用程序是否關心互斥鎖。但沒辦法,我的應用程序顯示「IM in mutex」消息,沒有從任何地方獲取任何釋放信號。通常情況下,肯定會有僵局,但不會。
我想要做的是,在StartLocationService完全完成之前,我不希望消息出現。我也試過mutex.ReleaseMutex();在StartLocationService函數結束之後。但它並沒有起作用。
我希望信號量在WP中存在。
請幫幫我;謝謝
互斥體在同一個線程中可重入。不要在UI線程中使用互斥鎖。 –
已命名的互斥鎖僅用於跨進程通信。在同一進程中同步線程時,請使用monitor(例如,使用鎖定C#關鍵字)來代替,不僅它們更易於使用,而且速度更快。 – Soonts