我的 Asp.net 应用程序生成动态 pdf。有时这需要一段时间,并且是一个相当繁重的过程。实际上我不希望我的用户等待pdf,只需在生成后将其发送到那里的邮件即可。
所以我尝试了网络服务。我将一个 id(从数据库获取数据)和一些字符串传递给 webservice 的方法。
但对于 Web 服务(即使使用异步调用),客户端也只能在生成 pdf 后收到其响应。所以用户还是需要等待。
所以我有点卡住了,一定有一种我忽略的方法。
最佳答案
您不需要 Web 服务即可获得进行异步调用的能力。
您可以使用 ThreadPool.QueueUserWorkItem()
作为 ASPX 页面中的“即发即弃”方法,然后返回带有某种“工作项 ID”的回复 - 例如收据或订单号。
在传递给 QUWI 的 WaitCallback 中生成 PDF。 当 pdf 准备好时,WaitCallback 可以发送电子邮件或其他任何内容。
如果您希望在网页之外可以访问该功能,请使用网络服务。不要严格将其用于异步。
关于c# - 将耗时的进程从我的 ASP.NET 应用程序中移走,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5831498/