【问题标题】:ASP.NET an asynchronous WebService ? Is it really asynchronous?ASP.NET 是一个异步 WebService 吗?真的是异步的吗?
【发布时间】:2010-07-29 20:08:29
【问题描述】:

我调用了一个服务器端方法(通过 jQuery 的 $.ajax),该方法调用了一个异步 WebService 长时间运行的方法。问题是,虽然那个长时间运行的方法不完整,但我无法为我的进度条获取该方法的进度。为什么服务器要等到方法完成?

[已解决]!

ThreadPool.QueueUserWorkItem(state => service.MyMethod());

该代码使我的网络服务器不等待方法完成,进度条正在更新。只有 1 行代码.....

【问题讨论】:

  • 哪个服务器正在等待,站点的 Web 服务器或托管“异步”方法的 Web 服务?
  • 我认为这不是一个答案,而是一个问题,因此存在 cmets。
  • 我在这里可能完全是愚蠢的,但我该如何发表评论?我必须要有一定的声誉才能做到这一点吗?

标签: asp.net jquery web-services


【解决方案1】:

这个is almost the same answer - to a different question.

解决方案是添加“Web Gardern”或“Web Pool”,意味着更多的工作池和线程,因为每个池都是线程安全的,必须等到下一次调用才能结束。

【讨论】:

  • 那么,在操作完成之前无法获得当前的操作进度?
  • @Tony 有可能使用请求中的新线程获取操作的当前进度。默认情况下,请求是在同一个线程上发出的,但您可以创建一个新线程来完成工作——很简单,需要同步和一些测试,但你可以做到——现在我看到你找到了。不错的方法,我使用简单的线程,好主意...
猜你喜欢
  • 1970-01-01
  • 2019-11-30
  • 2014-04-25
  • 2014-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-26
  • 1970-01-01
相关资源
最近更新 更多