WinForm コントロールをデバッグしていますが、メイン スレッドにいるにもかかわらず InvokeRequired = true を返します。コントロールが非 UI スレッドの子になることは可能ですか? UIコンポーネントであるコントロールはUIスレッドの子にしかならないと思っていました。
質問する
384 次
1 に答える
0
はい、アプリケーション (UI) スレッド以外のスレッドでコントロールが作成された可能性があります。以下の例を参照してください。
var task = Task<Button>.Factory.StartNew(() => {
var button = new Button();
var thisForcesControlToCreateHandle = button.Handle;
return button;
});
var taskResult = task.Result;
var invokeRequired = taskResult.InvokeRequired; // will be True
ハンドルの作成を強制するコントロール プロパティ Handle を読み取ることが重要です。詳細については、 http://msdn.microsoft.com/en-us/library/system.windows.forms.control.invokerequired.aspxを参照してください。
于 2013-01-11T22:33:13.100 に答える