2012-07-17 143 views
0

我的程序包含多個線程,我想用一個ManualResetEvent對象來控制。當我創建一個新的對象時(例如,新的ManualResetEvent MRE = new ManualResetEvent(args);),我希望MRE可以被所有類訪問,但是它不斷地作爲參數傳遞它是很麻煩的。我會讓它變得更好嗎?還是有更有效的方法呢? - 謝謝在類之間傳遞ManualResetEvent對象

+1

將其推送到另一個具有manualresetevent的單例類。 Yep ManualResetEvent仍然是單例內的實例對象。這種方式可以在任何地方使用它。但請記住,靜態對象的生命週期仍然是AppDomain的終結。 – Zenwalker 2012-07-17 03:04:18

+0

@zenwalker考慮到你對靜態變量生命週期的最終陳述,有沒有其他方法可以考慮我的程序是在後臺連續運行? – Ari 2012-07-17 03:08:58

+0

@jay,這聽起來像我們可以更好地回答這個問題,舉個例子,你正在使用MRE。您當然可以創建一個「全局靜態」MRE,但機會太粗糙,可能違反了使用它的類的一些設計最佳實踐。 – 2012-07-17 03:17:11

回答

0

隱藏依賴是一種錯誤的做法。如果你所有的類都需要一個ManualResetEvent的同一個實例,將它作爲一個依賴項添加並不麻煩,那麼它就是預期的接口。

對象的構造函數必須顯示它所依賴的對象的依賴關係。