我有这样的事情:
void func()
{
int a = int.Parse(system.readline.console());
}
但是我希望这个功能在5秒后完成,例如,即使用户没有插入任何东西。我怎么能这样做?
我想到了类似的东西:
void func()
{
System.Timers.Timer timer = new Timer();
timer.Interval = 5000
timer.Elapsed += SomeFunc;
timer.Start()
int a = int.Parse(system.console.readline());
}
void SomeFunc(object sender, EventArgs args)
{
Thread.CurrentThread.Abort();
}
但它看起来太难看了。另外,我真的不想中止所有的线程,只是打破这个功能。我不想只为这个函数创建另一个线程。
答案 0 :(得分:-2)
这似乎对我有用
var dt = DateTime.Now;
var s = string.Empty;
while ((DateTime.Now - dt).TotalSeconds < 5)
{
if (Console.KeyAvailable)
s += Console.ReadKey().KeyChar;
}