ユーザーがアプリケーションを引き続き使用できるように、タスクを使用して別のスレッドでデータをフェッチしています。私が見つけた問題は、グリッドへのデータの実際のバインドにも数秒かかることです。FetchData()呼び出しと同じスレッドでデータをバインドするにはどうすればよいですか?
Task<List<SomeData>> getData = new Task<List<SomeData>>(() =>
{
List<SomeData> myData = FetchData(); // Expensive!
return myData;
});
getData.Start();
Task processData = getData.ContinueWith(data =>
{
grid.DataSource = data; // Takes a few second so now the UI thread is disrupted
}, TaskScheduler.FromCurrentSynchronizationContext()); // UI thread :(