やりたいこと:
WPF(c#)で Web サービス DLL を使用しています。SmsSender
DLL には、私のコードでクラスとして表示できる Web サービスが含まれています。このクラスの各メソッドを呼び出すには時間がかかるため、そのメソッドを他のスレッドで実行する必要があります。
私がすること:
DataView オブジェクト (メソッドからの「戻り値」) を DataGrid の ItemsSource に設定します。だから私は使用しますDispatcher.BeginInvoke()
。
私の問題:
私の問題はDispatcher.BeginInvoke()
、別のスレッドで実行してもプログラムをフリーズさせることができることです。フリーズせずにメソッドを呼び出したい。タイムアウトを定義することは可能ですか?
アップデート1:
時間のかかる方法から DataGrid に DataView を設定するにはどうすればよいですか?
私のコード:
Action action = () =>
{
SmsSender sms = new SmsSender();
dgUser1.ItemsSource = sms.GetAllInboxMessagesDataSet().Tables[0].DefaultView;
};
dgUser1.Dispatcher.BeginInvoke(action);
前もって感謝します