如何在X秒后终止功能?

时间:2015-04-24 15:07:10

标签: c# function break timing

我有这样的事情:

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();
}

但它看起来太难看了。另外,我真的不想中止所有的线程,只是打破这个功能。我不想只为这个函数创建另一个线程。

1 个答案:

答案 0 :(得分:-2)

这似乎对我有用

var dt = DateTime.Now;
var s = string.Empty;
while ((DateTime.Now - dt).TotalSeconds < 5)
{
    if (Console.KeyAvailable)
        s += Console.ReadKey().KeyChar;
}