有没有一种方法可以检查是否有任何“用户”线程在运行。我想将其放在[TestCleanup]
方法中,如果测试没有加入它启动的所有线程,则测试失败。
我认为仅列出当前正在运行的所有线程都无济于事,例如,可能存在不确定时间开始的垃圾收集线程。因此,我基本上希望不仅仅与运行时相关联的线程。
我建议您看一下Microsoft.Diagnostics.Runtime
图书馆(Nuget)。特别是CLR功能。您可以使用以下代码获取带有堆栈跟踪的所有线程的列表
using (DataTarget target = DataTarget.AttachToProcess(Process.GetCurrentProcess().Id, 5000, AttachFlag.Passive))
{
ClrRuntime runtime = target.ClrVersions.First().CreateRuntime();
return new runtime.Threads;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句