如何让 ftp 脚本每 10 或 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();
我正在阅读有关在线程上使用 sleep 以及使用计时器的内容。但我不知道如何使用它们。问题是它还需要每 30 秒重新运行一次,而不仅仅是一次。
将代码放入方法中,例如命名为
RunFtp()
,然后使用 Timer
像这样:
var t = new System.Threading.Timer(
callback: o => RunFtp(),
state: null,
dueTime: 0, // run now
period: 30000); // milliseconds
.NET 中有许多不同类型的计时器,请参阅上面链接中的备注中的绿色面板以获取列表。
或使用 Windows 任务计划程序 来计划并重复运行应用程序。
Task.Delay
...
while (true)
{
RunFtp();
System.Threading.Task.Delay(30000).Wait();
}
...让您的代码在执行之间暂停 30 秒,但您还需要添加代码每次的执行时间,以便它准确地每 30 秒开始运行一次。
如果您想避免阻塞,您可能还需要考虑使用 async/await 来运行它。