sql – 如安在靠山最好地执行查询以不冻结应用措施(.NET)
我的WinForm应用措施必要执行具有大量执行时刻的伟大查询,我没有影响力(约莫10分钟)
我信托查询应该在差异的线程中执行.实行过一些要领但很难让它真正起浸染(执行查询,逼迫主应用措施守候功效,返回主应用措施,打消执行的也许性等) 我想知道你是否有本身的/精采的事变办理方案.代码示例也很是接待:) 其它我信托也许存在一些筹备行使的适用措施/框架,应承简朴地执行它. 办理要领假如要执行的要领是ExecuteQuery,则可以执行以下操纵:void SomeMethod() { var thread = new Thread(ExecuteQuery); thread.Start(); } void ExecuteQuery() { //Build your query here and execute it. } 假如ExecuteQuery收到一些参数,譬喻: void ExecuteQuery(string query) { //... } 你可以做: var threadStarter = () => { ExecuteQuery("SELECT * FROM [Table]"); }; var thread = new Thread(ThreadStarter); thread.Start(); 假如要遏制靠山线程的执行,请停止挪用thread.Abort()要领.这会杀死线程,你不但愿这样,由于你的数据库中也许会呈现一些错误. 相反,您可以从ExecuteQuery中看到一个bool变量,当您想要遏制它时,可以从外部将其配置为True.然后你要做的就是搜查ExecuteQuery中代码的某些部门,假如该变量仍为True.不然,执行一些回滚以保持数据库不变. 必然要配置bool变量 编辑: >启动靠山线程 完成线程后,您可以遏制进度条并再次启用控件. 怎么知道线程何时完成?您可以行使变乱.只需建设一个变乱并在它完成时触发它,并在变乱处理赏罚措施中做任何你想做的工作…… 确保您从靠山线程正确会见UI控件,不然会堕落. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |