我想創建自定義類的實例。例如,我有兩個線程T1
和T2
。如果我從T1
創建實例,則從T2
對該實例的任何訪問都應引發異常。就像在WinForms中一樣,當我嘗試從不是UI線程的線程訪問控制時。如果調用線程不是創建對象的線程,則拋出異常
如何實現這一目標?我應該存儲對current thread
的引用,還是應該保留當前線程的unique ID
? (如果該ID存在)。我使用哪種機制?
基本上它會是一個單一的生成給定種子的隨機數字。我想阻止從其他線程訪問這個單例,因爲我需要用相同的種子再次運行我的應用程序來重現我的場景。如果我願意從其他線程使用這個類,那麼複製將是不可能的,因爲線程以不可預測的順序啓動/停止/執行動作。
爲什麼?爲什麼不修復代碼以保證線程安全?在返回隨機數的方法中,一個簡單的'lock(){..}'應該足夠了 –
http://stackoverflow.com/a/7610982/574632 – Steve
如果您只想訪問,則不需要單例該對象來自主窗體或單個對象。 –