【发布时间】:2011-06-17 11:36:38
【问题描述】:
我有一个并行执行的任务;例如,异步打印用户选择的文档。一种方法可能是使用工作线程。但是想想成千上万的请求涌入 Web 服务器的场景,而应用程序又产生了一个打印线程,这听起来很可怕。如果所有并发用户都开始打印怎么办?
这就是我想避免工作线程的原因。
为了解决这个问题,我将代码移到了 Web 服务中;我正在调用PrintAsync() 方法,并且我已订阅OnPrintComplete 以获得通知。现在我可以发送任意数量的打印,而不必担心 asp.net 线程不足或阻塞请求。
我知道网络服务在内部使用线程,但那是 IOCP 线程,这意味着它不会打扰 asp.net 工作线程。
我想不出可能的缺点,除了它将是一个网络服务。
这是一个好方法吗?处理此功能的更好 替代版本会是什么?
【问题讨论】:
-
使用更好这个词并不能帮助这个问题得到绝对的回答。
-
什么是调用 PrintAsync 方法 - 智能客户端或 Web 请求?如果是 Web 请求,当 OnPrintcomplete 事件触发时会发生什么 - 在此期间请求是否被阻塞?
-
@Richard:我在一个 asp.net 网络应用程序中调用这个方法。
-
@Mr.失望:替换为alternate
-
您的页面处理在 PrintAsync 和 OnPrintComplete 之间做了什么?