gpt4 book ai didi

c# - 如何知道线程池中的线程挂起/卡住

转载 作者:行者123 更新时间:2023-12-02 15:53:42 26 4
gpt4 key购买 nike

我有线程池的任务队列,每个任务都有卡住锁定其正在使用的所有资源的倾向。并且除非重新启动服务,否则这些无法释放。

ThreadPool 中有没有办法知道它的线程已经被卡住?我有一个使用超时的想法(虽然我仍然不知道如何写),但我认为它不安全,因为处理的时间长度不统一。

最佳答案

我不想在这里太自以为是,但真正找出问题所在并解决它是解决死锁的最佳方法。

  • 运行服务的调试版本并等待它死锁。它会保持僵局,因为这是死锁的一个奇妙特性。
  • 将 Visual Studio 调试器附加到服务。
  • “全部打破”。
  • 打开您的线程窗口,然后开始探索...

除非你一开始就有合理的架构\设计\理由来选择受害者,否则不要这样做 - 就这样。当线程正在做某件事时,任意地敲打线程的头,这几乎会导致灾难。

关于c# - 如何知道线程池中的线程挂起/卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4436939/

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