如何在后台执行代码?

时间:2011-08-30 19:56:36

标签: c# asp.net

在点击事件中,我有一些代码需要大约4秒才能重定向用户。

有没有办法可以重定向用户,代码仍会在服务器上执行?我

5 个答案:

答案 0 :(得分:1)

您可以启动后台线程(或线程池上的任务)并在此期间重定向用户。但是,无法保证在重定向请求到达时任务将完成。你需要它吗?它只是“整理”还是一个需要在显示结果之前完成处理的动作?

请注意,我不认为在线程正在执行其操作时,有任何事情可以阻止AppDomain被垃圾收集...您可能希望将长时间运行的任务分离到单独的服务中关闭对该服务的请求,然后重定向用户。如果您具有请求的ID概念,则可以将其作为参数包含在重定向URL中,然后在重定向请求进入时检查服务是否已完成处理任务。

答案 1 :(得分:1)

是,create a new thread调用方法,或使用asynchronous handlers

答案 2 :(得分:1)

BackgroundWorker,如果你不善于维护自己的线程,那就做得很好。

http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx

答案 3 :(得分:0)

如何使用XHR Request或者您想重定向用户,后者可能会开始在另一个线程上运行您的进程并将响应发送给客户端。

答案 4 :(得分:0)

这取决于昂贵操作的结果是否会影响用户在下一页上看到的内容。或者,您可以在页面加载后使用ajax进行处理。