在我的方案中,当用户更改程序中的某些字段并执行SAVE
时,会发送webserivce
请求以将一些日志记录信息保存到数据库中。我在网站上进行了一些搜索,找到了Async
来电的解决方案:
ThreadPool.QueueUserWorkItem(delegate
{
// Create an instance of my webservice object.
// call its Log webmethod.
});
但是,由于我在webservices
和Async
来电方面没有多少经验,所以我想向您展示我的方案以及处理方式以获得您对此的看法如果它是正确的方式来做到这一点。谢谢你的建议。
答案 0 :(得分:2)
你能忍受丢失的伐木工作吗?只有这样才能在ASP.NET应用程序中启动“后台工作”。
QueueUserWorkItem
会奏效。更现代的版本是Task.Run
。确保捕获该线程池线程上发生的错误。如果没有,你永远不会发现错误并且默默地失去工作。
如果您预计会有大量此类来电,或预计会花费很长时间,consider using async IO。它在进行中时不使用任何线程(甚至不是后台线程)。