如何在控制台应用程序中最好地实现 SetTimeout?
How to best implement a SetTimeout in console app?
我想知道如何在我的控制台应用程序中使用 c# 最好地实现 SetTimeout
?
我的场景是:
我用soap客户端上传一个csv文件,因为文件太大,返回超时异常。
这很好,因为在这个阶段我希望我的控制台应用程序暂停 15 分钟,然后继续工作,因为我需要等到文件上传完毕。
此外,如果文件在 15 分钟后仍未上传,我想每分钟检查一次以确保文件已上传。
所以关键是有第一个 15 分钟的 SetTimeout(如 javascript)并检查文件是否已上传,否则每分钟检查一次文件是否已上传。
实现这个的最佳方法是什么?
我试过:
private Timer _timer;
_timer.Interval = ((1000 * 60) * 15);
_timer.Elapsed += IntervalElapsed;
_timer.Start();
IntervalElapsed方法如下:
private void IntervalElapsed(object sender, ElapsedEventArgs e){
_timer.stop();
// check if file has been uploaded
var isFileUploaded = HasFileBeenUploaded();
while(!isFileUploaded ){
// perform setInterval until file has been uploaded
}
}
但是我的 IntervalElapsed 方法从未被调用,控制台应用程序关闭。
您可能需要在完成计时器设置后阻止应用程序关闭,也许可以尝试添加
Console.ReadLine();
在您的代码末尾,它将在关闭前等待用户输入。
您可以使用简单的 Sleep
方法代替 Elapsed
方法来实现您的目标
const int MINUTE = 1000 * 60;
static void Main(string[] args)
{
System.Threading.Thread.Sleep(15 * MINUTE);
while(!HasFileBeenUploaded())
{
System.Threading.Thread.Sleep(MINUTE);
}
}
--SJ
我想知道如何在我的控制台应用程序中使用 c# 最好地实现 SetTimeout
?
我的场景是:
我用soap客户端上传一个csv文件,因为文件太大,返回超时异常。
这很好,因为在这个阶段我希望我的控制台应用程序暂停 15 分钟,然后继续工作,因为我需要等到文件上传完毕。
此外,如果文件在 15 分钟后仍未上传,我想每分钟检查一次以确保文件已上传。
所以关键是有第一个 15 分钟的 SetTimeout(如 javascript)并检查文件是否已上传,否则每分钟检查一次文件是否已上传。
实现这个的最佳方法是什么?
我试过:
private Timer _timer;
_timer.Interval = ((1000 * 60) * 15);
_timer.Elapsed += IntervalElapsed;
_timer.Start();
IntervalElapsed方法如下:
private void IntervalElapsed(object sender, ElapsedEventArgs e){
_timer.stop();
// check if file has been uploaded
var isFileUploaded = HasFileBeenUploaded();
while(!isFileUploaded ){
// perform setInterval until file has been uploaded
}
}
但是我的 IntervalElapsed 方法从未被调用,控制台应用程序关闭。
您可能需要在完成计时器设置后阻止应用程序关闭,也许可以尝试添加
Console.ReadLine();
在您的代码末尾,它将在关闭前等待用户输入。
您可以使用简单的 Sleep
方法代替 Elapsed
方法来实现您的目标
const int MINUTE = 1000 * 60;
static void Main(string[] args)
{
System.Threading.Thread.Sleep(15 * MINUTE);
while(!HasFileBeenUploaded())
{
System.Threading.Thread.Sleep(MINUTE);
}
}
--SJ