gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:28 24 4
gpt4 key购买 nike

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

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

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

由于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/

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