我使用特定工具来检查我的应用程序。一旦应用程序遇到断点,我可以通过调用某个函数从即时窗口调用我的工具。该工具本身是一个多线程的 Windows 应用程序,因此会产生一些任务。
我面临的问题是,有时从该工具安排的某些任务从未运行,这导致我的工具无限期挂起。ThreadPool.QueueUserWorkItem
我使用或使用生成任务,Task.Run
它们都导致工具挂起并且从不执行这些任务。如果我使用Thread
类代替该工具,则该工具可以完美运行。
此外,如果正常启动,即不是从即时窗口启动,该工具也可以工作(与任务一起使用)。因此,仅当我使用任务和即时窗口时才会出现问题。
因此,我的问题是某些任务从未执行的原因可能是什么?我知道即时窗口会阻塞所有其他线程并在命中断点的线程上执行命令,但是从即时窗口线程产生的线程/任务仍应执行,对吗?
我的应用程序和工具都在 C# 中。我正在使用 Visual Studio Professional 2015 Update 1。