C#控制台应用程序在主字符串中运行特定参数时忽略Writeline输出From void方法



我有这个代码。在运行代码时,如何在一段时间内忽略void方法的输出?

这将持续打印每秒钟的时间。带1秒循环但我想避免打印特定的Main字符串参数。我想让计时器保持原样。只是不想打印控制台的写入行;private static void timer_ Elapsed(对象发送方,ElapsedEventArgs e(";

using System;
using System.Timers;
using threadTimer = System.Threading;
namespace TimerExample
{
class Program
{
static Timer timer = new Timer(1000);
static int i = 0;

static void Main(string[] args)
{     


timer.Elapsed+=timer_Elapsed;
timer.Start(); 
Console.WriteLine("1st");


threadTimer.Thread.Sleep (10000);  
Console.Clear ();
Console.Clear ();
Console.WriteLine("2nd");
threadTimer.Thread.Sleep (3000);  

}
private static void timer_Elapsed(object sender, ElapsedEventArgs e)
{
float TimeToMissionsReady =  i++;
TimeSpan ts = TimeSpan.FromSeconds(TimeToMissionsReady);
string elapsedTime = String.Format("{0:00 Minutes} and {1:00 Seconds}",
ts.Minutes, ts.Seconds);
Console.Write("r   Time Passed:  " + elapsedTime);
}




}
}

您可以在程序类中声明一个Field,并通过args将其填充到main方法中,然后在计时器中检查它,如果是这样的话:

namespace TimerExample
{
class Program
{
static string[] Args;
static Timer timer = new Timer(1000);
static int i = 0;

static void Main(string[] args)
{     
Args = args;   

timer.Elapsed+=timer_Elapsed;
timer.Start(); 
Console.WriteLine("1st");


threadTimer.Thread.Sleep (10000);  
Console.Clear ();
Console.Clear ();
Console.WriteLine("2nd");
threadTimer.Thread.Sleep (3000);  

}
private static void timer_Elapsed(object sender, ElapsedEventArgs e)
{
float TimeToMissionsReady =  i++;
TimeSpan ts = TimeSpan.FromSeconds(TimeToMissionsReady);
string elapsedTime = String.Format("{0:00 Minutes} and {1:00 Seconds}",
ts.Minutes, ts.Seconds);
if(!Check(Args))
Console.Write("r   Time Passed:  " + elapsedTime);
}
private static bool Check(string[] args) 
{ 
foreach (var arg in args) { 
if(arg == "YourArg") 
return true; 
} 
return false; 
}

}
}

最新更新