在ASP.NET页面上声明如下:
Thread thread = new Thread(new ThreadStart(UpdateCalculateFields)); thread.Start();//Other;
UpdateCalculateFields方法调用BLL层的一个方法A,, 假设A方法要执行十秒钟。。
我想问的是,既然使用了异步,asp.net不会等方法执行完毕后才刷新,而是立即执行Other, 那刷新页面后这个线程还会存活麽? 是不一定还是一定?如果不能的话, 有没有更好的办法使用异步,在asp.net?
异步调用的话,这个页面的后台执行会继续(当然前台调用已经结束),直到你的异步任务执行完成为止。
你可以通过实验验证下,跟踪这个PAGE的UNLOAD事件的执行。
Web页面的异步执行旨在解决一些后台操作需要很长时间,但又不影响前端响应的问题。这样,可以快速的响应前端请求,又能执行长时间的后台操作。而换作同步执行的话,会导致请求超时的问题发生。
也就是说这个线程不会随着页面的刷新而被垃圾回收 而会正常执行结束?
@任延伟: 对。这个是我的理解。你可以在页面的UNLOAD事件里跟踪下。