我有这个代码。在运行代码时,如何在一段时间内忽略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;
}
}
}