2013-05-05 26 views
2

如何讓我的ftp腳本每10或30秒運行一次?c# - 我將如何運行腳本每30秒?

FTP腳本:

FtpWebRequest makedir = (FtpWebRequest)WebRequest.Create("ftp://xxx.xxx.xxx.xxx/" + System.Environment.MachineName + "___" + System.Environment.UserName + @"/"); 
makedir.Method = WebRequestMethods.Ftp.MakeDirectory; 
makedir.Credentials = new NetworkCredential("usr", @"passwd"); 
FtpWebResponse makedirStream = (FtpWebResponse)makedir.GetResponse(); 
makedirStream.Close(); 

我在讀有關使用一個線程睡眠也關於使用定時器..但我找不出如何爲使用。該事情是,它也需要每30秒重新運行一次。

+0

這是WinForms?的WebForms?安慰? WPF?還有別的嗎?還有什麼需要同時運行嗎? – 2013-05-05 20:43:24

+0

下面的答案很好。不過,仔細想想你的目標。想做這樣的事情並不常見。它是否檢查FTP服務器正在運行?如果無法連接到服務器,那麼是一種錯誤處理形式?可能有更好的方法。 – 2013-05-05 21:19:24

+0

@Idle_Mind它的一個控制檯程序可能是一個上傳..我確定我可以從下面的數據中得出結論.. – 2013-05-05 21:27:30

回答

2

把你的代碼在一個名爲像RunFtp()然後用一個定時器這樣的方法:

var t = new System.Threading.Timer(o => RunFtp(), null, 0, 30000); 

或者使用Windows Task Scheduler調度和反覆運行應用程序。

或者使用Sleep()方法是這樣的...

while (true) 
{ 
    RunFtp(); 
    System.Threading.Thread.Sleep(30000); 
} 

...會導致代碼暫停執行之間30秒,但你還需要添加代碼的執行時間。所以它不會準確地開始每30秒運行一次。

+0

謝謝!如果我有任何問題..生病發表評論,讓你知道。 – 2013-05-05 21:27:50

+0

沒有probs,會很快離線zeds,但早上回來。 – davmos 2013-05-05 22:03:01