簡體   English   中英

制作可連續運行的ac#應用程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM