所以我有一个程序可以作为其他程序的一种“外壳”。它的核心是传递一个类、一个方法名和一些参数,并处理函数的执行,其想法是允许其他程序员基本上安排他们的进程在这个 shell 服务上运行。一切正常,除了一个问题。通常,这些计划执行的进程占用大量 CPU。有时,被调用的进程开始使用如此多的 CPU,以至于我负责检查计划和启动其他作业的线程在很长一段时间内都没有机会运行,从而导致调度问题和缺乏足够的反应能力。不幸的是,我不能在实际运行的代码中插入 Thread.Sleep() 调用,因为我并不真正“拥有”它。
所以我的问题是:是否可以在不修改在该线程中运行的实际代码的情况下每隔一段时间强制任意线程(我启动的)休眠(yield)?除此之外,是否有某种方法可以在运行时将 Thread.Sleep() 调用“注入”到我将要动态运行的代码中?