xミリ秒ごとに再描画する(タイマーからの)イベントハンドラーがあります。
async void メソッドを使用することは (明らかに) ベスト プラクティスではありませんが、開発者は他のメソッドからイベント ハンドラーを呼び出さないため、これは明らかにイベント ハンドラーには当てはまりません。
私の問題は、プロセッサのワークロードが重い場合 (バックグラウンド タスクなど)、再描画の呼び出しが重複して行われることに気付きました。
描画が完了したことを示すフラグ (bool 変数) を設定する (このフラグが true でない限り、描画メソッドを呼び出さない) ことでこれを回避できましたが、Windows ストア アプリはポーリングで拒否される可能性があると聞きました。非同期アクティビティについて。
private void _timer_Tick(object sender, object e)
{
if (drawingFinished == true)
{
drawingFinished = false;
// drawingFinished set to true at the end of this method
DrawVideoFrame();
}
}
また、非同期メソッドにロックを追加することはできません。
ここでのベストプラクティスは何ですか? これについてどうすればよいですか?