注意:我仅限于 .net 4.0
我目前正在使用秒表来测量执行某个操作所需的时间。 Action 完成后,我根据时间做逻辑。更具体地说,我检查时间是否超过某个阈值。
我最近发现了 Task.Wait(int timeout) 方法
将我的操作放入任务中并在我的阈值上等待它更好吗?
例如:
bool isOnTime=false;
Task action = new Task(() => someMethod());
action.Start();
isOnTime = action.Wait(myThreshold);
if(!isOnTime)
{
...some code
}
编辑:更新问题,因为每个人都认为我想运行任务
这就是我目前的做法:
Stopwatch watch = Stopwatch.StartNew();
someMethod();
watch.Stop();
executeTime = watch.ElapsedMilliseconds;
稍后我运行:
if (executeTime > Threshold)
我正在同步运行该方法,并且我想保持这种状态
最佳答案
现在发生的情况是,如果操作花费的时间超过 myThreshold,则操作将被取消。我不认为那是你想要的。除此之外,您还可以使用 .Wait()
来阻止调用线程。
我会说坚持秒表或考虑其他事情。
编辑:我的错,我对 Task.Wait()
的理解不正确。我今天学到了一些东西,这很好:-)
不过,除非 someMethod 是异步方法,否则您正在使用另一个线程。因此,如果并发不是问题,这将是一个不错的选择。
关于c# - 秒表与 Task.Wait,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37526359/