0

我有一个自定义控件进度条,我需要通过另一个线程进行更新。自定义控件似乎没有 Invoke、BeginInvoke、InvokeRequired 等可用,是否有人对如何在控件中实现此有任何想法?

4

1 回答 1

0

您将需要查看Dispatcher.Invoke执行此操作的方法。我有一个方便的方法为我包装了这个功能:

public object RunOnUiThread(Delegate method)
{
    return Dispatcher.Invoke(DispatcherPriority.Normal, method);
}

我这样使用它:

UiThreadManager.RunOnUiThread((Action)delegate
{
    // This code will run on the UI thread
});

请注意,您需要使用Dispatcher来自 UI 线程的正确对象,而不是在非 UI 线程上创建的对象。请查看 MSDN 上的Dispatcher.Invoke方法页面以获取更多信息。

如果这不是你想要的,请告诉我。

于 2013-10-14T15:27:43.790 回答