我们在大批量的插入、修改数据的时候,如果不停地去实时更新表界面,会非常影响性能,如果我们可以像下面那样关闭掉窗体、表的刷新的话,就可以极大地提高程序的运行效率。如果不影响数据生成的话,关闭表的事件效果也会更好。
Vb.Net |
'锁定指定窗口刷新 Proj.LockMainFormUpdate(Proj.MainForm.Handle) Dim tbl As SmGrid = Proj.CurrentSmGrid '停止指定表刷新 tbl.StopRedraw() '停止表事件刷新,这个可能会影响部分基于事件而运行的代码执行逻辑,这个得看情况使用 tbl.DataTableHelp.BlockEvents = True Try '这里写复杂的数据处理 Catch ex As Exception UnhandledExceptionManager.ShowAndSaveLog(ex) Finally '恢复表刷新 tbl.ResumeRedraw() '恢复表事件刷新 tbl.DataTableHelp.BlockEvents = False '恢复窗体刷新 Proj.UnlockMainFormUpdate() End Try |
C# |
//锁定指定窗口刷新 Proj.LockMainFormUpdate(Proj.MainForm.Handle); SmGrid tbl=Proj.CurrentSmGrid; //停止指定表刷新 tbl.StopRedraw(); //停止表事件刷新,这个可能会影响部分基于事件而运行的代码执行逻辑,这个得看情况使用 tbl.DataTableHelp.BlockEvents=true; try { //这里写复杂的数据处理 } catch (Exception ex) { UnhandledExceptionManager.ShowAndSaveLog(ex); } finally { //恢复表刷新 tbl.ResumeRedraw(); //恢复表事件刷新 tbl.DataTableHelp.BlockEvents=false; //恢复窗体刷新 Proj.UnlockMainFormUpdate(); } |