2011-05-06 58 views
3

嗨 我有一個用.NET編寫的c#窗體窗體4.在應用程序中,一個定時器事件調用一個函數,一切正常。但是我已經更新了應用程序,因此它的單個實例應用程序和第二個實例被調用時觸發與第一個實例中的計時器相同的功能。我相信當定時器調用該函數時會遇到問題,而第二個實例會導致第一個實例同時輸入相同的函數。這是否有道理!一次可以訪問一個函數!

那麼如何將調用排隊到函數,以便調用它的第二個進程等待,直到第一個進程退出,並且如果它在X秒內無法訪問,則會返回錯誤?我是否在靜態函數中執行所有這些操作?

因爲這可能沒有意義,即使對我來說!如果我在一個項目中有兩個定時器,並且都調用相同的靜態函數,我將如何停止同時調用該函數並將它們排隊!

我已經開始閱讀互斥體,但不知道我會如何使用它們,如果他們會超出範圍!?

謝謝

+0

因此......進程A中的代碼正在調用進程B中的方法Je suis困惑。 – 2011-05-06 18:56:46

+0

你可以發佈代碼來顯示進程如何相互通信? – 2011-05-06 19:07:44

+0

嗨,布萊恩,他們之間沒有任何溝通,只是在變化之前它只有單線程,但現在可以同時調用一個函數。 – Adrian 2011-05-06 19:11:18

回答

1

在函數中使用鎖定以確保獨佔訪問。

+0

嗨洪,我會把私人對象thisLock = new Object(); 在函數或program.cs中還是在主窗體中? – Adrian 2011-05-06 19:11:56

+0

是的,這似乎很好,謝謝 – Adrian 2011-05-06 19:23:39

相關問題