如何检查计时器1是否已启动
本文关键字:是否 启动 计时器 何检查 检查 | 更新日期: 2023-09-27 18:27:34
我有DownloadFileCompleted事件:
private void Client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
if (e.Error != null)
{
timer1.Stop();
span = new TimeSpan(0, (int)numericUpDown1.Value, 0);
label21.Text = span.ToString(@"mm':ss");
timer3.Start();
}
else if (!e.Cancelled)
{
timer3.Stop();
label19.Visible = false;
bool fileok = Bad_File_Testing(combinedTemp);
if (fileok == true)
{
File1 = new Bitmap(combinedTemp);
bool compared = ComparingImages(File1);
if (compared == false)
{
DirectoryInfo dir1 = new DirectoryInfo(sf);
FileInfo[] fi = dir1.GetFiles("*.gif");
last_file = fi[fi.Length - 1].FullName;
string lastFileNumber = last_file.Substring(82, 6);
int lastNumber = int.Parse(lastFileNumber);
lastNumber++;
string newFileName = string.Format("radar{0:D6}.gif", lastNumber);
identicalFilesComparison = File_Utility.File_Comparison(combinedTemp, last_file);
if (identicalFilesComparison == false)
{
string newfile = Path.Combine(sf, newFileName);
File.Copy(combinedTemp, newfile);
LastFileIsEmpty();
}
}
}
else
{
File.Delete(combinedTemp);
}
File1.Dispose();
}
}
如果e为Error,则timer1为stop,timer3为start。在timer3中,我试图在30秒后再次下载该文件。然后在下一次它到达完成的事件时,例如这次,e没有显示任何错误,所以它将进入第二部分:
else if (!e.Cancelled)
{
timer3.Stop();
label19.Visible = false;
bool fileok = Bad_File_Testing(combinedTemp);
if (fileok == true)
{
File1 = new Bitmap(combinedTemp);
bool compared = ComparingImages(File1);
if (compared == false)
{
DirectoryInfo dir1 = new DirectoryInfo(sf);
FileInfo[] fi = dir1.GetFiles("*.gif");
last_file = fi[fi.Length - 1].FullName;
string lastFileNumber = last_file.Substring(82, 6);
int lastNumber = int.Parse(lastFileNumber);
lastNumber++;
string newFileName = string.Format("radar{0:D6}.gif", lastNumber);
identicalFilesComparison = File_Utility.File_Comparison(combinedTemp, last_file);
if (identicalFilesComparison == false)
{
string newfile = Path.Combine(sf, newFileName);
File.Copy(combinedTemp, newfile);
LastFileIsEmpty();
}
}
}
else
{
File.Delete(combinedTemp);
}
File1.Dispose();
}
但由于第一次出现错误,我停止了timer1,这次没有错误,所以我想启动timer1,但在构造函数中,我无论如何都启动了timer1并且它第一次尝试下载文件,所以可能会出现完全没有错误的情况,它将一直进入已完成事件的第二部分。
我可以在任何情况下放入已完成的事件timer1.Start();问题是,如果timer1已经启动,但没有停止,那么每次重新启动都会有问题吗?
这就是为什么我想检查计时器1是否已经在运行,不要再启动它。
您可以检查timer1.Enabled
值
bool Timer.Enabled
如果计时器当前已启用,则为true;否则为false。默认值是错误的