Silverlight for Windows Embeddedプロジェクトに取り組んでいて、UIスレッドで問題が発生しています。現在、アプリケーションUIスレッドは、共有メモリファイルに格納されているデータに基づいて表示を継続的に更新し、指定されたミリ秒数スリープしてからUIを再度更新する必要があります。したがって、本質的に、コードは次のようなものです。
while(true){
UpdateUI(); //gets data from shared memory and updates graphics
Sleep(250);
}
ただし、ご存知の方もいらっしゃると思いますが、メインのSilverlight UIスレッド内でSleep()を使用することはお勧めしません。案の定、組み込みシステム全体が20〜30分間実行するとクラッシュし、Sleep()の呼び出しが問題であると特定しました。
私が必要としているのは、UIを更新し、しばらく一時停止してからUIを再度更新し、このプロセスを無限に繰り返す別の方法です。
私の知る限り、プロジェクトの組み込みの性質により、UIスレッド(つまりJoin())でより良いソリューションとなるSleep()の明らかな代替手段のいくつかを使用することはできません。
任意の提案をいただければ幸いです!