我的ASP.Net 4 Web应用程序调用一些代码,为长时间运行的脚本生成一个Process.读取标准输出,并在数据库中更新返回值.我想“发射并忘记”这段代码,以便我的UI保持响应,用户不必等待这两个操作完成.调用代码不需要这两个操作的最终结果,所以我认为我不需要“等待”任何东西,我不需要任何成功或失败的迹象.
我对所有可用选项感到困惑.编码这个的最佳方法是什么,以便这两个操作只是以他们的快乐方式发送并自己做他们的事情?
解决方法
好吧,“最佳方式”可能有争议,但我会使用以下内容继续使用TPL:
Task parentTask = Task.Factory.StartNew(() => SomeMethod(someParameter));
注意:如果“长时间运行的脚本”调用WCF服务,那么有关WCF异步编程的以下文章可能会有所帮助.
http://blogs.msdn.com/b/wenlong/archive/2009/02/09/scale-wcf-application-better-with-asynchronous-programming.aspx