我有一個週期性運行10秒的任務。我通過閱讀數據庫來做一些picturebox刷新過程。我想要的是調用或喚醒線程,並執行刷新操作,當我點擊一個按鈕immidiately。總之,我希望刷新任務不僅受時間驅動,而且還受到事件的共同驅動。這可能嗎?如果是,如何?下面顯示了該任務的代碼塊。睡覺時喚醒任務
while (true)
{
// do some refresh operation
Thread.Sleep(10000);
}
void button1_Click(object sender, EventArgs e)
{
// invoke or awaken thread
}
不能與這個while循環 - 基本與Thread.Sleep你告訴Windows - 不要安排在未來10秒的線程。我不知道有什麼辦法讓它回來。您可以減少時間間隔並檢查循環內的變量。 – Bond
使用定時器控制!它是爲此而構建的。您甚至可以避免執行多線程操作,因爲tick事件將在UI線程中觸發。 –
我不明白的是:假設計時器更新了圖形用戶界面,然後在5秒鐘後單擊按鈕進行另一次手動更新。定時器應該在5秒後運行自己的更新還是停止直到下一回合? – Tudor