- 假設有一個線程A是一個UI線程。
- 線程A創建另一個線程B,它是一個非UI線程。
- 當線程B想要在線程A中引發一個事件時,所要做的就是 if(Form1.InvokeRequired)Form1.Invoke(同樣的方法)並在該方法中調用該事件的權利?
簡單。但是我的問題是如果你想做同樣的事情,如果A和B都是非UI線程呢? Theres沒有窗體對象從線程B調用Invoke()。如何在兩個非UI線程中模擬Control.Invoke()
如果WinForms應用程序執行此操作,爲什麼沒有類似於非UI線程的機制?我錯過了什麼嗎?有沒有類似的方法來從另一個非UI線程中引發一個非UI線程中的事件?
在此先感謝。
P.S.生產者/消費者模型的答案不是我在這裏尋找的。
線程問題不僅適用於用戶界面,當然; p就個人而言,我將問題解釋爲他希望線程A運行該工作,但我可能是錯誤的。 –
嗯,你是對的馬克。必須確保WinForms在調用invoke時不會使用任何魔法來使事情發生。感謝您澄清我的疑惑。我會接受你的回答。它是Windows消息循環。 – Harindaka