簡體   English   中英

后台工人同時循環

[英]Background worker while loop

我要創建的是一個后台工作器,每30秒執行一些進程。 但是我希望這個while循環在程序啟動后一直執行。 這是我正在使用的:

    private void watcherprocess1()
    {
        backgroundWorker1.RunWorkerAsync();

    }  
    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
        while(
        Thread.Sleep(30000);
        specficView2();
        makeFormlist2();
        populateListview2();
    }

我的主要問題是AI可以想到一個很好的while循環來保持運行

我認為來自Threading-NamespaceTimer更適合於此。 它將滴答異步,並且您可以從滴答事件中生成該過程。

你在找嗎

while(true)

使用System.Windows.Forms.Timer

我同意Bobby的觀點,即System.Threading.Timer(或System.Timers.Timer)可能最適合此工作。

但是,如果您必須創建一個使用工作線程的線程,那么我寧願為該任務專門創建一個線程。 在您的應用程序生存期內,運行BackGroundWorker(這是一個ThreadPool線程)是一個while循環,這對我來說並不理想。

也許是這樣的:

private void watcherprocess1()
{        
    Thread thread = new Thread(new ThreadStart(this.Work));
    thread.IsBackground = true;
    thread.Name = "My Worker.";
    thread.Start();
}  

private void Work()
{
    while(true)
    {            
        specficView2();
        makeFormlist2();
        populateListview2();
        Thread.Sleep(30000);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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