2013-01-09 21 views
4

從線程A我希望異步調用MethodA()(以便它不會阻塞線程A)在線程B上運行我已啓動的特定線程,以便它中斷線程B正在執行的操作。如何異步調用方法,但在特定線程上?

這是可能的,而不必主動輪詢線程B中的MethodA()調用請求嗎?

編輯:更具體,我想對到MethodA()所有的呼叫在線程B.

編輯2:沒有線程是UI線程。雖然我知道線程B正在運行,但如果它不是/不拋出異常,能夠返回false會很好。

+0

如果您希望它在該線程上運行,那麼只需在該線程上同步運行即可。 MethodA()可以觸發一個線程B檢查的AutoResetEvent。 – itsme86

+0

兩個線程是否都運行?你有權訪問Thread2嗎? – MBen

+0

您可以使用SynchronizationContext –

回答

3

不創建線程B worker的特定實現是不可能的。 線程B工作者應該像無限循環或另一種信號機制,如EventWaitHandle。在循環的每次迭代中,線程B工作人員都應該檢查一些可以由另一個線程填充的委託隊列。