相关疑难解决方法(0)

如何在 WinForm 组件的 UI 线程上调用?

我正在编写一个 WinForm 组件,在那里我启动一个任务来进行实际处理并在继续时捕获异常。从那里我想在 UI 元素上显示异常消息。

Task myTask = Task.Factory.StartNew (() => SomeMethod(someArgs));
myTask.ContinueWith (antecedant => uiTextBox.Text = antecedant.Exception.Message,
                     TaskContinuationOptions.OnlyOnFaulted);
Run Code Online (Sandbox Code Playgroud)

现在我收到一个跨线程异常,因为该任务正在尝试从一个明显的非 UI 线程更新 UI 元素。

但是,在 Component 类中没有定义 Invoke 或 BeginInvoke。

如何从这里开始?


更新

另外,请注意 Invoke/BeginInvoke/InvokeRequired 在我的 Component 派生类中不可用,因为 Component 不提供它们。

user-interface components invoke winforms

1
推荐指数
1
解决办法
2009
查看次数

标签 统计

components ×1

invoke ×1

user-interface ×1

winforms ×1