ServiceController.WaitForStatus(status,timeout)会抛出TimeoutException。
另一方面,Process.WaitForExit(超时)返回一个布尔值 - 如果操作完成则返回true;别的假。
是否有推荐?
我发现A MSDN Connect forum post倾向于TimeoutException方法。有人可以确认吗?
答案 0 :(得分:2)
这一切都取决于预期的结果。如果预计某些进程超时(例如,等待用户输入),则将其设为返回代码。如果超时可能是错误的原因(例如网络操作),则将其作为例外。你甚至可以有两个版本:一个返回一个值,表示它是否超时,另一个只是抛出异常。
答案 1 :(得分:2)
找到elusive recommendation MSDN page。
更好的方法是使用 TimeSpan结构为超时 类型。 TimeSpan解决了这些问题 提到的整数超时 上方。
此外,建议 那个你抛出一个异常 超时到期而不是返回 错误代码。到期了 超时意味着操作 无法成功完成 因此应该对待和 处理为任何其他运行时错误。
在异步的情况下 超时的操作, 应该调用回调函数 结果时抛出异常 首先访问该操作。
显然你必须使用“超时”进行搜索,而所有API都使用“超时”作为参数的名称。