3

私は Windows 8 ストア アプリに取り組んでいます。2 分ごとにデリゲートを呼び出し、非同期 Web 要求を行うタイマーがあります。結果のデータは、UI 要素にバインドされている observablecollection に追加されます。UI が非 UI スレッドで変更されているため、これを行うと例外がスローされます。コードの他の場所でこれを行いました

await Window.Current.CoreWindow.Dispatcher.RunAsync( CoreDispatcherPriority.Normal, async () =>
{
    ui code here
}

しかし、これは Window.Current が null でクラッシュを引き起こしています。Window.Current をパラメーターとしてデリゲートに渡そうとしましたが、これは別の例外をスローします。これを解決する方法について何か提案はありますか?

4

2 に答える 2

4

通常、バックグラウンド操作で UI スレッドを更新するよりも、UI スレッドでバックグラウンド操作を呼び出す方が簡単です。

したがって、 を使用することをお勧めします。DispatcherTimerその後は、まったく使用する必要はありませんDispatcher

于 2013-09-18T12:56:17.377 に答える