none
Web 中的异步问题,请教 RRS feed

  • 问题

  • //委托
    delegate void WriteLogate();
    。。。。。。
    //异步
    WriteLogate wld = new WriteLogate(UserContext.WriteLog);
    IAsyncResult iftAR = wld.BeginInvoke(null, null);
    //重定向
    Response.Redirect(url);

    这样异步操作在Web中使用似乎不是很理想,它好像总是不异步处理,它会等异步代码执行完后才重定向,哪个高手对其中的执行细节了解的,能说说吗,谢谢啦?

    我踏月色而至
    2010年4月7日 1:37

答案

全部回复

  • 不是很了解,但从整个过程来看,这么做也没错,因为在response.redirect之后,整个处理就完成了,相当于程序退出,因此在这之前必须等其他操作都完成了才行。

    你这个得用别的方式实现,如workflow之类的。


    霸王
    2010年4月7日 4:40
  • 首先要明确:用redirect方式重定向,就意味着当前页面生命周期的结束。

    其次为什么会等到异步完成以后才重定向呢?这个问题可以看看MSDN,使用异步委托可以有阻塞主线程和不阻塞主线程两种处理方式。

    最后,如果你想通过异步完成的功能和某个具体Page页无关,那么可以在会话级或应用程序级别进行处理。


    .NET liucy
    2010年4月7日 15:20
  • 你好

    关于异步页面的处理你可以参考下面这篇文档。该文档详细介绍了asp.net中异步异步处理的原理和方法。

    http://msdn.microsoft.com/zh-cn/magazine/cc163725%28en-us%29.aspx


    Microsoft Online Community Support
    2010年4月8日 7:02