2013-07-02 160 views
3

我想知道如何在後臺每隔5分鐘增量運行一個c#程序。下面的代碼並不是我希望作爲後臺進程運行的,但希望找出使用此代碼執行此操作的最佳方法,以便我可以在另一個代碼上實現它。所以這個過程應該在五分鐘後增加。我知道我可以使用線程來做到這一點,但現在不知道如何實現這一點。我知道這是最好的方式How to run a console application on system Startup , without appearing it on display(background process)?這在後臺運行,但我怎麼會有五個分鐘爲增量如何在後臺連續運行c#控制檯應用程序

class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.Write("hellow world"); 
      Console.ReadLine(); 
     } 
    } 
+0

如果應用程序中沒有輸出,則應考慮創建服務。 –

+0

如果應用程序中沒有輸出,爲什麼寫了'Console.Write'? –

+0

這是相同的問題http://stackoverflow.com/questions/2686289/how-to-run-a-net-console-app-in-the-background –

回答

7

爲什麼不只是使用Windows Task Scheduler

將其設置爲以期望的時間間隔運行您的應用程序。這對於這類工作來說非常完美,你不必爲強迫線程入睡而煩惱,這可能會產生更多的問題。

+0

這是一個免費服務 – user2543131

5

這個程序應該連續運行運行的代碼,即把一條消息每隔5分鐘。
這不是你想要的嗎?

class Program 
{ 
    static void Main(string[] args) 
    { 
     while (true) { 
      Console.Write("hellow world"); 
      System.Threading.Thread.Sleep(1000 * 60 * 5); // Sleep for 5 minutes 
     } 

    } 
} 
+2

@Cemafor他編輯答案抗議WAS合法 – VeNoMiS

+1

@Cemafor他編輯了我的評論後的答案。不管間隔時間,他的初始代碼都會運行。我已經刪除它,因爲它已不再相關 – DGibbs

+1

爲什麼你需要一段時間 – user2543131

1

也許最簡單的方法是每隔X分鐘「觸發」一個新過程就是使用Windows Task Scheduler

你當然可以用編程方式做類似的事情,例如,創建您自己的服務,每隔X分鐘啓動一次控制檯應用程序。


所有這一切都假設你真的想在下一次迭代之前關閉應用程序。或者,您可能會一直保持活動狀態。您可以使用one of the timer classes定期觸發事件,甚至在非常簡化的場景中觸發事件。

1

如何使用System.Windows.Threading.DispatcherTimer

class Program 
{ 
    static void Main(string[] args) 
    { 
     DispatcherTimer timer = new DispatcherTimer(); 
     timer.Interval = new TimeSpan(0, 5, 0); // sets it to 5 minutes 
     timer.Tick += new EventHandler(timer_Tick); 
     timer.Start(); 
    } 

    static void timer_Tick(object sender, EventArgs e) 
    { 
     // whatever you want to happen every 5 minutes 
    } 

} 
+0

你只需要防止在這裏關閉控制檯應用程序。 –

+0

在最後放置了一個'Console.ReadLine()',它將繼續運行。 –

相關問題