我有一個事件處理程序(來自計時器),每x毫秒重繪一次。檢查無效異步方法的完成
儘管使用異步無效方法(顯然)不是最佳做法,但事實上,事件處理程序顯然不適用,因爲開發人員不會從其他方法調用它們。
我的問題是我注意到,當處理器工作負載很重(後臺任務等)時,重疊的調用被重做。
我已經能夠通過設置一個標誌(bool變量)來指示繪圖已完成(並且不調用我的繪製方法,除非此標誌爲真),但我已經聽說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();
}
}
此外,您不能將鎖添加到異步方法。
這裏最好的做法是什麼?我應該怎麼做呢?
這並不回答你的問題,而是使用布爾標誌,你可以簡單地緩存任務並檢查它是否完成。 DrawVideoFrame究竟做了什麼? – 2013-03-23 10:42:36
有趣的想法,pm_2。我認爲在返回任務的方法完成之前我無法獲得任務。 – micahhoover 2013-03-23 17:22:59
否 - 您可以將任務作爲變量創建並稍後在流程中使用。 – 2013-03-24 20:22:35