我有一个 Windows 应用程序,我已经在 c# Express 2008 中运行了一年,并且在过去几天一直试图将它转换为 2010。我遇到的问题是它是一个多线程应用程序,具有每秒运行一系列代码。它的作用是有一个主线程,调用 3 个工作线程,等待它们完成,然后做一些额外的处理,休眠到 1 秒,然后再次运行。
问题是部分代码可以调用需要 8 秒响应的 Web 服务,因此使用 ThreadPool.QueueUserWorkItem 调用这段代码。问题是在 2010 年运行时,当这部分代码被调用时,主线程继续运行,但当它唤醒子线程时,它会挂起,直到 Threadpool 方法完成运行。
这在 2008 年从未发生过。有什么建议吗?到目前为止,我将那段代码放在它自己的线程中,而不是使用线程池,但同样的问题。
最佳答案
当我更新我的 IDE 时,我将相当多的应用程序从 VS 08 移植到 10,大多数时候我没有遇到任何问题,只要“属性”选项卡中的所有值(你称之为选项卡吗? )看起来不错。有时 Visual Studio 会自动修复任何错误,但有时,您必须手动进行编辑。
您是否在错误窗口中收到任何警告?
关于C# Express 2010 多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3533854/