我有一個不同於UI的線程運行的代碼,它必須創建一個控件(windows窗體)。但是,我沒有提及UI的任何控件(這樣,我可以使用myControl.Invoke(methodThatAddsControlToUI)
)。有沒有辦法做到這一點.net 緊湊框架?如果可能的話,我會對不使用其他控件引用的解決方案感興趣(跟蹤所有創建的表單,例如,將不是一個很好的解決方法,因爲我的代碼將位於庫中)。在完整的框架版本中,有Application.OpenForms
屬性,但這不會在CF中退出。如何從其他線程(.net精簡框架)正確創建控件,而不參考其他控件?
編輯:
這樣做的主要目的是呼籲在UI線程的方法:
class Worker
{
public MyMethod()
{
// I need to call a method on the UI (this code doesn't run in the UI thread),
// but I don't have any field in this object holding an UI control
// value. So, I can't write myControlField.Invoke(...),
// but I still need to call a method on the UI thread
}
}
有什麼建議?
我可能失去了一些東西,但你有什麼打算,如果你有沒有其他的控制來分配其與新的控制做至? – 2012-07-19 15:30:15
我想用它來調用UI上的方法,有點像newControl.Invoke(myMethod) – 2012-07-19 15:32:46
你可以給我們一些代碼示例嗎?我很難理解你想要做什麼!對於那個很抱歉。 – 2012-07-19 15:37:58