2013-10-14 60 views
0

我有一个自定义控件进度条,我需要通过另一个线程进行更新..似乎没有一个自定义控件可用的Invoke,BeginInvoke,InvokeRequired等,有没有人有任何想法如何实现此内部控制?如何将调用方法添加到自定义控件?

回答

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 Method页面以获取更多信息。

请让我知道这是不是你以后。

+0

嗨谢里登,这很接近,我想包裹他们,让他们保持与其他控件上看到的相同的呼叫签名,所以也许?公共对象Invoke(委托方法) { return Dispatcher.Invoke(DispatcherPriority.Normal,method); }但是如何以同样的方式包装RequiresInvoke? – JGU

+0

对不起,但这是什么意思? – Sheridan

+0

无所谓,我想通了..谢谢谢里登! – JGU

相关问题