UIスレッドでデータを更新中に3〜10秒間UIがフリーズするUIスレッドのデータをフリーズせずに更新したい。c#WPF UIがハングするUIスレッドのデータを更新する
コード:Getdata()
Task t = Task.Factory.StartNew(() =>
{
// Get data from Server
GetData(true);
});
//Converst JSON to DataSet Object:- "tempDataSet"
Task task = Task.Factory.StartNew(() =>
{
RetriveData(tempDataSet, firstTime);
}, CancellationToken.None, TaskCreationOptions.None, MainFrame.Current);
RetriveData
DataTable response = tempDataSet.Tables["response"];
DataTable conversations = tempDataSet.Tables["convo"];
foreach (DataRow row in conversations.Rows) // UI Hangs in the method
{
UC_InboxControl control = new UC_InboxControl(row, uC_Inbox);
if (uC_Inbox.mnuUnreadChat.IsChecked == false)
{
inboxControlCollection.Add(control);
}
else
{
inboxUnreadOnlyControlCollection.Add(control);
}
}
インサイドハングせずにUIスレッドでUIを更新または凍結するための最良の方法は何ですか?
Getdata()内で新しいタスクを開始するのはなぜですか?完全なコードを投稿してください。 – mm8
RetriveData内にUI操作があります。私はUI更新のために新しいタスクを使用しました。 –
GetDataにUI操作はどこにありますか?これは意味がありません。すべてのUI操作はUIスレッドをフリーズします。 – mm8