0
我有包含QueryData方法的視圖模型:Dispatch.BeginInvoke我究竟做錯了什麼?
void QueryData() {
_dataService.GetData((item, error) =>
{
if(error != null)
return;
Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() =>
{
foreach(TimeData d in ((LineDetailData)item).Piecesproduced) {
Produced.Add(d);
}
}), DispatcherPriority.Send);
});
}
調用此方法從timer_Tick事件處理程序的每個10秒。然後數據被異步查詢,然後執行回調。那裏查詢的數據,應該插入Observable集合(不是STA線程 - >開始Invoke)。它正確地進入回調,但不執行內部Dispatcher.CurrentDispatcher.BeginInvoke的代碼。
我在做什麼錯了?
事我會先檢查:是'錯誤== null'? '.Pieces生產的'有物品嗎?添加一些日誌記錄將有助於診斷正在發生的事情。 –
錯誤不爲空。開始調用行被執行。 PiecesProduced包含項目。 – TheJoeIaut
還有什麼是你調用堆棧在這一點上發生了什麼?您的代碼不會被執行,直到調度完成其目前的工作 - 而在這之前,分派需要給予機會執行。是否還有其他事情阻止了Dispatcher?是您'timer'實際上是一個'DispatcherTimer',還是有別的東西在那個點上的UI長時間運行? –