如何将Invoke方法添加到自定义控件?

时间:2013-10-14 15:17:49

标签: wpf controls invoke

我有一个自定义控件进度条,我需要通过另一个线程进行更新..似乎没有可用于自定义控件的Invoke,BeginInvoke,InvokeRequired等,是否有人对如何实现此操作有任何想法在控制范围内?

1 个答案:

答案 0 :(得分: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
});

请注意,您需要使用UI线程中的正确Dispatcher对象,而不是在非UI线程上创建的对象。有关详细信息,请查看MSDN上的Dispatcher.Invoke Method页面。

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