我在Main()中有一个while循环,它经历了几种方法。虽然名为ScanChanges()
的一个方法有一个if / else语句,但在if
的情况下,它必须跳转到Thread.Sleep(10000)
(在循环结束时)。
static void Main(string[] args)
{
while (true)
{
ChangeFiles();
ScanChanges();
TrimFolder();
TrimFile();
Thread.Sleep(10000);
}
}
private static void ChangeFiles()
{
// code here
}
private static void ScanChanges()
{
}
FileInfo fi = new FileInfo("input.txt");
if (fi.Length > 0)
{
// How to Escape loop??
}
else
{
Process.Start("cmd.exe", @"/c test.exe -f input.txt > output.txt").WaitForExit();
}
答案 0 :(得分:6)
让ScanChanges返回一些值,表明您是否必须跳到循环结束:
class Program
{
static void Main(string[] args)
{
while (true)
{
ChangeFiles();
bool changes = ScanChanges();
if (!changes)
{
TrimFolder();
TrimFile();
}
Thread.Sleep(10000);
}
}
private static void ChangeFiles()
{
// code here
}
private static bool ScanChanges()
{
FileInfo fi = new FileInfo("input.txt");
if (fi.Length > 0)
{
return true;
}
else
{
Process.Start("cmd.exe", @"/c test.exe -f input.txt > output.txt").WaitForExit();
return false;
}
}
答案 1 :(得分:3)
如果您已在ScanChanges
内找到bool
语句,则if
返回ScanChanges
,然后在while循环中再生一个if
语句如果ScanChanges
恢复正确,则跳过这两个程序。
答案 2 :(得分:0)
使ScanChanges返回值,如果它将断开循环,则可能是boolean返回true,否则返回false。
然后在main中设置中断循环条件。
答案 3 :(得分:0)
使用break来摆脱循环。
if (fi.Length > 0)
{
break;
}