c# - 在 C# 中实现超时

标签 c# timeout

我是 C# 的新手;我主要是做Java。

我想按照以下方式实现超时:

int now= Time.now();
while(true)
{
  tryMethod();
  if(now > now+5000) throw new TimeoutException();
}

我如何在 C# 中实现它?谢谢!

最佳答案

一种可能的方式是:

Stopwatch sw = new Stopwatch();
sw.Start();

while(true)
{
    tryMethod();
    if(sw.ElapsedMilliseconds > 5000) throw new TimeoutException();
}

但是您目前无法跳出循环。我建议让 tryMethod 返回一个 bool 并将其更改为:

Stopwatch sw = new Stopwatch();
sw.Start();

while(!tryMethod())
{
    if(sw.ElapsedMilliseconds > 5000) throw new TimeoutException();
}

关于c# - 在 C# 中实现超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10143980/

相关文章:

c# - 仅对一个上下文使用 DbContext

java - 如何在Java Elasticsearch中设置超时

c++ - C++ Linux 中的套接字超时

bash - 如何在bash中建立超时后默认操作的菜单?

android - 在异步 Http 客户端上设置超时

c# - 如何为 x=>x.List 创建简单的表达式树

C# - 如何在函数中传递和运行方法?

c# - c# 锁可以序列化对外部资源的访问吗?

c# - ObservableCollection 添加项目

javascript - 带有 jquery 对话框的 javascript 中的 session 超时警告