asp.net C#ajax运行’async’批处理作业
我对asp.net和C#都很陌生,所以请耐心等待.如果以前曾经问过这个问题,我也很抱歉…如果有,请指导我到一个有帮助的页面.
是)我有的: >一页:有4个updatepanels > 1st UpdatePanel,包含(项目)gridview,用户显示选项(对此问题不重要)和执行数据库搜索的按钮,该数据库搜索返回显示到网格的项目列表.用户选择此网格上的项目… 我想进一步研究,不知道如何: >如何执行“异步”批处理作业?我想要实现的是,当用户点击批量运行按钮时,第3个(任务)更新面板及其所有控件将被禁用,而批处理作业将在“幕后”运行.根据任务的不同,每项任务最多可能需要5秒.如果用户创建了60个任务,我认为这也会导致页面超时? 希望你理解我的问题.如果有人能够对如何解决这项任务提供一些指导和/或指导,我们非常感激 更多信息: 使用Framework 3.5 使用Asp.net C#Ajax Web服务是solaris盒子上的gSoap 提前谢谢了. 很抱歉作为一个菜鸟,我试图回复你的帮助,但发现我可以放入一些有限的角色.我现在只更新自己的评论. 谢谢你的建议.对于迟到的回复感到抱歉,我前几天一直在寻找并做了一些修改,让它与’PageAsyncTask’和’IAsyncResult’一起工作.我已经创建了一个将由页面调用的Web服务类.新的Web服务类将调用gSoap Web服务.我设法以某种方式’异步’运行它. 我有一个按钮执行: protected void StartASyncJob() { PageAsyncTask task = new PageAsyncTask( new BeginEventHandler(BeginAsyncCommandTask),new EndEventHandler(EndAsyncCommandTask),new EndEventHandler(AsyncCommandTaskTimeOut),null); RegisterAsyncTask(task); } BeginAsyncCommandTask将遍历网格,获取第一个待处理任务并调用Web服务. 然后,EndAsyncCommandTask将检索返回结果,写出(log)UpdatePanel.然后它将再次执行StartASyncJob(),查找要处理的下一个待处理记录. 只有在页面上不做任何其他操作时,所有这一切才有效. 我想’等待’是由’PageAsyncTask’从同一页面线程’生成’引起的? 我原以为让“异步”Web服务能够让用户一次做多件事,从而提供更好的用户体验.但似乎我错了和/或没有做对. 我还没有尝试过使用QueueUserWorkItem的建议;但在此之前,请问是否会产生与使用’PageAsyncTask’相同的效果.使用QueueUserWorkItem会产生“从同一页面线程产生”的相同效果吗? 提前谢谢了.对不起,如果我没有很好地解释自己,如果您需要我发布我的代码,请告诉我. 解决方法
有一些解决方案,但取决于您在服务器上的控制程度.
>如果您对服务器具有完全访问控制权,则可以创建一个单独的应用程序来处理任务;应用程序可以是Windows服务,页面和应用程序之间的通信可以是数据库或MSMMQ(通信主要是指任务列表及其状态 – 1.执行,2.执行3.完成). System.Threading.ThreadPool.QueueUserWorkItem(foo => LauchTaskRunner()); 假设您实现了一个名为LaunchTaskRunner的方法,该方法在循环中只处理现有任务列表,上面的行将把它启动到一个单独的进程中.您可以通过一些静态变量(在页面中声明)与此方法(在单独的线程中运行)进行通信,例如: public class YourPage : System.Web.UI.Page{ static IList<Task> tasks; static void LauchTaskRunner(){ // here make use of tasks variable } } 每次(任务)updatepanel刷新时,它都应该基于任务变量进行渲染. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 实体框架:“底层提供商在Open上失败”
- asp.net – 这个基于LINQ的搜索是否可以安全地防止SQL注入/
- asp.net中的pagemethods
- asp.net – 我应该在Web应用程序中嵌入CSS / JavaScript文件
- asp.net c#中的最佳Audit Trail流程?
- 单元测试ASP.net Page_Load
- asp.net-mvc – 在同一页面上创建新的父项和子节点
- asp.net – 设置asp:DropDownList的html’name’attriubut
- ASP.NET MVC Ajax错误返回视图而不是ajax
- asp.net-mvc – ASP.NET MVC现在是“开源”.这是一件好事吗
- asp.net – Request.IsLocal是安全还是可以欺骗?
- ASP.NET HttpApplication生命周期
- asp.net-core – 在Asp.Net Core中注入DbContext
- 修改服务器配置 让asp.net文件后缀名随心所欲
- asp.net – 如果禁用ViewState会发生什么
- asp.net – HttpUtility.UrlEncode和Application
- asp.net – 用于错误处理和丢失图像的HttpModule
- asp.net – 通过Button控制Fire AsyncFileUpload
- asp.net-mvc-5 – 如何使用asp.net身份更改当前用
- 为什么私有事件处理程序在ASP.NET中不起作用