我在 C# 中使用一个线程,我希望它在 40 秒后停止。事实上,我启动它,它运行了 40 秒,然后它应该停止。是否可以使用超时或计时器?
有两种方法:
1.封装超时
从网络或串口读取数据的线程可以测量从它开始时经过的时间,并等待数据不超过剩余时间。网络通信 API 通常提供指定操作超时的方法。因此,通过执行简单的 DateTime 算术,您可以在工作线程中封装超时管理。
2. 外部超时
使用另一个线程(或者如果可行的话在主线程中执行)等待工作线程在特定时间限制内完成,如果没有,则中止它。像这样:
// start the worker thread
...
// give it no more than 5 seconds to execute
if (!workerThread.Join(new TimeSpan(0, 0, 5)))
{
workerThread.Abort();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4073 次 |
| 最近记录: |