0
我正在調試WinForm控件,它返回InvokeRequired = true,雖然我在主線程。 控件是否可能是非UI線程的子項? 我認爲控件是一個UI組件只能是UI線程的子項。InvokeRequired = true在主線程上?
我正在調試WinForm控件,它返回InvokeRequired = true,雖然我在主線程。 控件是否可能是非UI線程的子項? 我認爲控件是一個UI組件只能是UI線程的子項。InvokeRequired = true在主線程上?
是的,可能的是,該控件是在除application(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形式的更多信息。