c# - 我怎样才能知道 .NET 线程占用的资源?

标签 c# .net multithreading

我正在开发一个多线程应用程序,我的一个线程被某些东西阻塞了,因此它会永远占用一些资源,比如一个文件。有没有办法找出哪个线程被阻塞,更重要的是该线程持有什么资源?

最后和往常一样,感谢您的耐心回复。 :)

--------新进展------------

由于windows平台上的所有资源都是通过“句柄”访问的。我在想是否有办法列出 .NET 线程持有的所有句柄?

最佳答案

当您创建线程时,您可以在开始之前为每个线程设置一个名称。然后您可以在调试器中使用这些来识别有问题的线程。

然后当您的程序没有关闭时,您跳转到调试器并点击暂停,然后您可以通过事件线程。 调试->Windows->线程(CTRL-ALT+H)

如果你的线程不是关键的,你只是想让系统在完成时关闭你可以设置.IsBackground在线程上,您不需要执行任何特殊操作来关闭线程,尽管这通常可能会导致您没有预料到的其他情况。

我个人也使用 System.Threading.AutoResetEvent(duration) 而不是 Sleep(duration) 因为如果我想退出,我设置 mIsRunning=false 然后设置将导致事件停止唤醒但立即退出的事件。 sleep 必须在恢复之前完成。

关于c# - 我怎样才能知道 .NET 线程占用的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2763009/

相关文章:

C# 构造函数和常量之谜

c# - 不向黑客共享连接字符串的最佳方法

.net - XMLWriter 与 XMLDictionaryWriter

c# - 将变量设置为开关的结果

c++ - 阻塞主线程等待它的子线程

c# - Windows XP SP3 上的 wlanAPI

c# - 你如何让 System.Web.Script.javascriptSerializer 忽略一个属性?

c# - 一个 DELETE 查询,如何知道没有要删除的内容?

java - 如何计算java中完成的线程数而不轮询线程状态

c - pthreads:如何断言代码在单线程上下文中运行