它是什麼以及如何使用?是否有一個保證C#中FIFO順序的同步類?
我需要,因爲我有一個計時器,每秒鐘插入數據庫,並且我有定時器處理程序和主線程之間的共享資源。 我想保證,如果定時器處理程序在插入中需要超過一秒鐘,等待的線程應該按順序執行。 這是我的定時器處理
private void InsertBasicVaraibles(object param)
{
try
{
DataTablesMutex.WaitOne();//mutex for my shared resources
//insert into DB
}
catch (Exception ex)
{
//Handle
}
finally
{
DataTablesMutex.ReleaseMutex();
}
}
樣本代碼,但目前的互斥體不保證任何順序。 我把詳細的問題後沒有答案!
定義鎖是FIFO。一條線進去了,沒有人進來,直到它出去! – 2009-06-07 13:19:35
@Mitch:但不能保證必須等待的第一個線程是之後立即解除阻塞的線程。所以不,鎖不是FIFO。 – 2009-06-07 13:20:23
(即,如果T1當前持有該鎖,則T2嘗試獲取它,然後T3嘗試獲取它,但不能保證T3在T2之前獲得它)。 – 2009-06-07 13:20:56