代码之家  ›  专栏  ›  技术社区  ›  Dimitri C.

当不在主线程中运行时,silverlight中的http很慢

  •  1
  • Dimitri C.  · 技术社区  · 16 年前

    我做了一个测试项目,它在Silverlight中发出了httpwebrequest和webclient类的http post请求。我总是能得到大约20个呼叫/秒的性能,我认为这是非常缓慢的。我发送和接收的唯一数据是小字符串(大约20个字符)。令我惊讶的是wcf(soap over http) showed a similar performance . 然而,当我做了相同的测试,但确保所有程序逻辑都在主线程中运行时,性能大大提高,最高可达150次调用/秒。

    有人能解释一下是什么导致了这种影响吗?我的意思是,多线程本身不会导致这样的缓慢。

    音符 :我的所有测试都使用本地主机连接。

    更新 :经过广泛的研究,我得出结论 the performance problem is inherent to Silverlight v3 .

    1 回复  |  直到 16 年前
        1
  •  1
  •   slugster Joey Cai    16 年前

    当您在不启动单独线程的情况下执行wcf调用时,它们将在ui线程上执行,并且不会立即执行,而是在ui线程有足够的时间执行时执行。

    检查 this blog post ,可能正是你想要的。与您所发现的相反,他发现在后台线程上的wcf调用速度更快——很明显,因为该线程不需要执行任何其他工作。