c# - 如何在 docker 的 dotnet core 中将线程或任务设置为在给定时间后自动中止/取消?
问题描述
我的 dotnet 核心代码中有一种特殊情况,要求我能够中止/取消运行经常卡在执行中的第三方代码的线程。
我无法使用取消令牌的推荐做法,因为第三方代码是违规方。
违规代码来自 ssh.net 项目,我试图避免/解决的错误如下: https ://github.com/sshnet/SSH.NET/issues/355
以下(优秀)建议会对我有所帮助,但它是通过使用 kernel32 dll 提出的,我必须使代码在 Linux 环境中的 docker 下工作: Is it possible to abort a Task like aborting a Thread (Thread.Abort method) ?
我已经查看了 Linux 中的 libc 规范,但我很难弄清楚在那个平台上什么是正确的实现。
ThreadHelper.RunWithAbort(() => {
Client?.Disconnect();
Client?.Dispose();
}, TimeSpan.FromSeconds(10));
如果代码冻结并且不影响应用程序的其余部分或系统本身,代码应该能够终止第三方代码。
解决方案
推荐阅读
- python - 为多个用户托管一个 Flask-Angular 应用程序
- jenkins - 使用 Spinnaker 明智地持续部署分支
- javascript - 数据不保存在 TextArea 中。可能是由于页面刷新
- oracle - 仅在 APEX 页面中添加文本评论
- python - 通过熊猫数据框中的日期时间索引查找行位置
- jquery - 自动完成搜索未在 asp.net mvc 中显示建议?
- r - 如何用一组值替换 NA
- vue.js - 从父级传递给子级的Vue数据无法访问
- ios - UIPageViewController subviewcontroller 无法在 viewDidAppear 上执行 segue
- flutter - 如何在颤动中从json中获取时间