我想要做什么:
我在 WPF(c#) 中使用 Web 服务 DLL。DLL 包含一个 Web 服务,您可以在我的代码中将其视为SmsSender
类。调用这个类的每个方法都很耗时,所以我需要在其他线程中运行它的方法。
我做什么:
我将 DataView 对象(即方法的“返回值”)设置为 DataGrid 的 ItemsSource。所以我用Dispatcher.BeginInvoke()
.
我的问题:
我的问题是使用Dispatcher.BeginInvoke()
可以冻结我的程序,即使我在不同的线程中运行它。我想在不冻结的情况下调用方法。是否可以定义超时?
更新1:
如何将 DataView 从耗时的方法设置为 DataGrid?
我的代码:
Action action = () =>
{
SmsSender sms = new SmsSender();
dgUser1.ItemsSource = sms.GetAllInboxMessagesDataSet().Tables[0].DefaultView;
};
dgUser1.Dispatcher.BeginInvoke(action);
提前致谢