gpt4 book ai didi

.net - "Watch Dog"或 c# 中的沙箱系统

转载 作者:行者123 更新时间:2023-12-01 05:00:08 24 4
gpt4 key购买 nike

我有一个函数,我想让它运行给定的时间长度,然后,如果它没有自行退出,则中止。 执行此操作的最佳方法是什么?

我想到的最好的办法是在另一个线程中运行它,等待它超时,然后使用 Thread.Abort() 杀死它(如果该函数有错误类型的 catch block )。另一种选择(我不知道如何实现)是某种带有 throw 的抢占式计时器。

还有更好的方法吗?某种简单的沙盒系统?


编辑:我将要运行的函数没有任何系统来检查它是否应该取消,而我不能(因为不能 ) 添加它。此外,这是一种测试工具,所以我将终止该功能的条件是它运行不正常。在那种情况下,我不能指望它能正确地做任何事情。

最佳答案

对于这样的事情可能有点矫枉过正,但您可以考虑是否要将托管该线程的任何内容加载到 AppDomain 中。 AppDomain 本质上是一个 .NET 沙箱。

如果线程进入杂草,您可以杀死 AppDomain。

关于.net - "Watch Dog"或 c# 中的沙箱系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1225689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com