我有一个小问题
我有一个WPF应用程序,一个方法需要一些时间(它通过WCF服务发送信息)。我想在另一个线程而不是GUI线程中执行此操作。
问题:
GUI询问服务,该服务向数据存储区发出请求,该服务器提供与WCF服务通信的新事务管理器。
数据存储区对象将GUI线程作为所有者。
我想在交易经理中做这样的事情:
public void MyMethod(abcdef){
//Income with the GUI thread
//Launch a thread with my action which tooks times
//update my objects with the result(Has to be done with the GUI thread)
但是我没有GUI元素,我可以在其上执行XYZ.Dispatch或Invoke或BeginInvoke。但是当我开始时,我知道GUI线程参考。问题是我将拥有线程所有者例外。
我有一些限制:
你对如何做到这一点有所了解吗?
谢谢!
答案 0 :(得分:1)
使用该方法,您可以执行带有参数的函数,该函数在GUI线程上执行。您将WPF窗口的Dispatcher
属性传递给后台工作程序,并使用该实例的BeginInvoke
方法进行通信。