![]() |
1
5
这可能有点过分,但您可以研究是否要将承载该线程的任何东西加载到AppDomain中。AppDomain本质上是一个.NET沙盒。 如果线程陷入杂草中,您可以直接杀死AppDomain。 |
![]() |
2
2
您想要实现的是
后台操作应定期检查
在服务器上设置Cancel属性
这是一个很好的例子 MSDN documentation . 另请参见该页面底部的社区贡献和相关链接。 你可能也会发现这篇博文很有趣,它使用了Thread.Abort,虽然我真的建议你避免。。。 C# Set method timeout using Generics |
![]() |
3
1
尽你所能为这个问题找到一个合理的解决方案。异常不是流控制,线程中止更糟糕。也就是说,您可以在线程上运行它,并在超时后中止该线程。 编辑:这里有一个措辞强硬但有效的解释,说明我是多么鼓励你找到另一个解决方案: http://tdanecker.blogspot.com/2007/08/do-never-ever-use-threadabort.html |
![]() |
4
1
为什么函数不退出?它产生了什么结果? 我的第一个尝试是使代码足够紧凑,并处理所有“卡住”的情况,这样就不需要看门狗——如果您正在等待释放资源,请在等待时超时,并适当地处理异常。 缺少这些,我会尝试生成一个进程外看门狗,根据需要执行进程。杀死。这比Thread.Abort更有效——如果您要采用残酷的解决方案,为什么不一直这样做呢? |
![]() |
5
1
我可能没有正确理解这个问题,但是为什么不将逻辑放入函数本身呢?示例(C#):
|
![]() |
6
1
因此,您可以使用类似于此的类
|
![]() |
7
0
可以使用Thread.Join()限制线程执行。 |
![]() |
8
0
我知道这似乎有些过分,但从技术上讲,它可以按照你想要的方式工作。将正在处理的代码拆分为2。第一部分是经理,第二部分是执行人。 Executor(在您的例子中)可以是一个简单的命令行应用程序,具有您想要测试的任何功能。此时,manager应用程序所做的是使用Process(System.Diagnostics)类调用命令行应用程序。process类的方法之一是WaitForExit,它将等待控制台应用程序退出。但是如果应用程序没有退出,您可以指定在强制退出应用程序之前等待的时间。
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 3 月前 |
![]() |
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 4 月前 |
![]() |
CactusCake · if语句中应有分号 5 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 5 月前 |