我将定时器的信息传递给另一个函数,但是在传递信息之后,它会一直传递它。我不想关闭定时器。 有没有办法阻止循环?计时器间隔为5秒。定时器连续循环
private static List<DirectoryInfo> list_to_copy = new List<DirectoryInfo>();
DirectoryInfo usbdirectory;
backing_up_interface backing_up_interface;
bool newfilesfound = false;
private void usbchecker_timer_Tick(object sender, EventArgs e)
{
foreach (DriveInfo usbname in DriveInfo.GetDrives().Where(usbproperty => usbproperty.DriveType == DriveType.Removable && usbproperty.IsReady))
{
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory.ToString() + usbname.VolumeLabel + @"\"))
{
usbdirectory = new DirectoryInfo(usbname.Name);
if (!list_to_copy.Contains(usbdirectory))
{
list_to_copy.Add(usbdirectory);
newfilesfound = true;
}
}
}
if (newfilesfound == true)
{
process_copy();
newfilesfound = false;
}
}
//where information is passed to
private void process_copy()
{
for (int i = 0; i < list_to_copy.Count; i++)
{
backing_up_interface = new backing_up_interface(list_to_copy[i]);
backing_up_interface.Show(); MessageBox.Show(list_to_copy[i].ToString());
}
}
你要存档什么?我的意思是这段代码的目的是什么?你可能会不必要地使它复杂化。 –
它检查USB并检查它是否已被复制。如果它没有调用函数来复制它@ qqww2 – yhusoonpoint
我不明白你的意思是“它不断传递它”。你的代码要做的是循环一系列驱动器。如果有任何不存在的Directiory并且不在列表中,它将执行一次'process_cop()'方法 – mrsargent