如何对操作施加时间限制

Jor*_*ira 3 c# timeout

我有一个(可能)冗长的操作a,我想对其施加限制时间约束t(以毫秒为单位)。如果操作a 的完成时间少于t毫秒,那么我将返回操作a的答案;否则我想中止操作并返回一个正确的错误代码,说明超出了时间限制。

我怎样才能在 C# 中完成这个?如果您有其他与语言无关的想法,请随时分享?

Ali*_*tad 5

最好是将它包装在Task<T>or 中Task并使用Wait

这里

Task t = new Task(DoStuff());
t.Wait(1000);
Run Code Online (Sandbox Code Playgroud)

  • 但是任务一直在后台运行。我看到有一个 `CancellationTokenSource`,我们可以从中获取一个 `CancellationToken` 并将其传递给 `Task` ctor。但这意味着在`CancellatoinToken.IsCancellationRequest` 上进行池化以完成任务。但好点。 (2认同)