[英]Make a c# application that runs continuously
我正在編寫一個客戶端應用程序,它將用戶計算機中的數據推送到網站。 我希望該應用程序每60秒鍾更新一次網站。 現在,我將函數封裝在45秒的無限while循環中。 但是,Windows表示即使更新網站,該應用程序也沒有響應。 這是我的代碼的結構。
您的問題是while循環阻塞了UI線程 。 要解決此問題,您需要在單獨的線程上運行代碼。
最簡單的方法來開始..可能是使用Timer
:
System.Timers.Timer timer = new System.Timers.Timer(45000); // timer will execute every 45 seconds
timer.Elapsed += (sender, e) => {
// your upload code here
};
timer.Start();
當然,您絕對應該在稍后階段研究線程。 也許是BackgroundWorker
或任務並行庫。
Thread.Sleep(...)
將UI線程阻止指定的毫秒數。 一種方法是使用Task.Delay(..)
不阻塞UI線程,而是同時等待45秒:
private async void button1_Click(object sender, EventArgs e)
{
running = true;
while (running)
{
//your code
await System.Threading.Tasks.Task.Delay(4500);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.