我正在开发一个Web部件,它必须解析服务器端的文件列表并输出报告。问题是这种操作可能会持续很长时间。
我决定在一个单独的线程中处理文件,并在结果解析时加载带有“加载....”等消息的Web部件内容,事件将被触发并且内容将更新网页部分。
我找到了很多帖子,其中包含以下解决方案
问题是我在我的解决方案中没有.aspx文件,我可以在其中调整Async="true"
指令中的@Page
参数。
有没有人知道这个文件在哪里或者如何添加它以便由Web部分进行核心处理。
P.S。我尝试使用BackgroundWorker
执行任务,但它出现与Page.RegisterAsyncTask
相同的错误。错误是:“在此上下文中不允许异步操作。启动异步操作的页面必须将Async属性设置为true,并且只能在PreRenderComplete事件之前的页面上启动异步操作。” EM>
答案 0 :(得分:0)
WebParts可以异步/多线程运行。通过Page.RegisterAsyncTask注册相应的事件处理程序。您将指定应异步调用的方法,以及处理完成后控件将返回的回调方法。
http://daniellarson.wordpress.com/2006/06/26/asynchronous-webparts-in-asp-net-2-0/
http://daniellarson.wordpress.com/2006/07/16/asynchrounous-asp-net-webparts-for-sharepointmoss/