【问题标题】:C# Express 2010 Multi-ThreadingC# Express 2010 多线程
【发布时间】:2010-08-20 18:41:31
【问题描述】:

我有一个 Windows 应用程序,我已经在 c# Express 2008 中运行了一年,并且在过去几天一直在尝试将其转换为 2010 年。我遇到的问题是它是一个多线程应用程序,它具有每秒运行一系列代码。它的作用是有一个主线程,它调用 3 个工作线程,等待它们完成然后做一些额外的处理,休眠到 1 秒然后再次运行。

问题是部分代码可以调用需要 8 秒才能响应的 Web 服务,因此使用 ThreadPool.QueueUserWorkItem 调用这段代码。问题是在 2010 年运行时,当这部分代码被调用时,主线程继续运行,但是当它唤醒子线程时,它会挂起,直到 Threadpool 方法完成运行。

这在 2008 年从未发生过。有什么建议吗?到目前为止,我将那段代码放在它自己的线程中,而不是使用 Threadpool 但同样的问题。

【问题讨论】:

  • 你能发布一个显示这个的代码示例吗?
  • 几个问题。您是否更改了运行应用程序的 .Net 版本? VS 2008 默认使用 3.5,'10 使用 4.0,但是当项目升级时 VS 不会碰撞框架。此外,这是否仅在 VS 中运行时才会发生(大概是调试模式)?最后,正如 Mikael 建议的那样,一些复制问题的代码会有所帮助。

标签: c# multithreading visual-studio-express


【解决方案1】:

当我更新我的 IDE 时,我将很多应用程序从 VS 08 移植到 10,大多数时候我没有任何问题,只要“属性”选项卡中的所有值(你称之为选项卡) ) 看起来不错。有时 Visual Studio 会自动修复任何错误,但其他时候,您必须手动编辑。

您的错误窗口中是否收到任何警告?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多