c# - 秒表与 Task.Wait

标签 c# .net multithreading task stopwatch

注意:我仅限于 .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/

相关文章:

使用 Maven 进行 C# 项目管理

c# - 是否可以将任意数据保存到 C# 中的文件中?

c# - ASP.NET MVC : Register action filter without modifying controller

c# - Windows 正在从我在一台机器上的日期中删除斜杠

.Net 哈希表 - Contains 与 ContainsKey

c# - 基于不同XAML的样式继承

实际应用程序中的 C# 线程

ios - API流程阻塞图和交互

c# - 从 C# 调用 tap_example.py 获取 Membase TAP Stream

c# - 在 C# 中,使用 for 循环迭代数组是线程安全操作吗?使用 foreach 循环迭代 IEnumerable<T> 怎么样?