优化模块资源释放与异步预加载

This commit is contained in:
2026-09-03 14:16:48 +08:00
parent a263522b47
commit fddab16bd2
35 changed files with 1553 additions and 977 deletions
@@ -32,13 +32,14 @@
/// </summary>
private void InitializeComponent()
{
this.pMenu = new DevExpress.XtraBars.PopupMenu();
this.barManager1 = new DevExpress.XtraBars.BarManager();
this.components = new System.ComponentModel.Container();
this.pMenu = new DevExpress.XtraBars.PopupMenu(this.components);
this.barManager1 = new DevExpress.XtraBars.BarManager(this.components);
this.barDockControlTop = new DevExpress.XtraBars.BarDockControl();
this.barDockControlBottom = new DevExpress.XtraBars.BarDockControl();
this.barDockControlLeft = new DevExpress.XtraBars.BarDockControl();
this.barDockControlRight = new DevExpress.XtraBars.BarDockControl();
this.pMprint = new DevExpress.XtraBars.PopupMenu();
this.pMprint = new DevExpress.XtraBars.PopupMenu(this.components);
this.pl_right_top = new DevExpress.XtraEditors.PanelControl();
this.gridFlow = new Lskj.Control.GridControlEx();
this.label_flow = new DevExpress.XtraEditors.LabelControl();
@@ -75,8 +76,8 @@
this.label_managerAudit = new Lskj.Control.LabelTextEdit();
this.CheckSuggestion = new Lskj.Control.LabelComboxEdit();
this.dbpFP = new DevExpress.XtraEditors.DropDownButton();
this.pmFP = new DevExpress.XtraBars.PopupMenu();
this.barManager2 = new DevExpress.XtraBars.BarManager();
this.pmFP = new DevExpress.XtraBars.PopupMenu(this.components);
this.barManager2 = new DevExpress.XtraBars.BarManager(this.components);
this.barDockControl1 = new DevExpress.XtraBars.BarDockControl();
this.barDockControl2 = new DevExpress.XtraBars.BarDockControl();
this.barDockControl3 = new DevExpress.XtraBars.BarDockControl();
@@ -449,7 +449,8 @@ namespace Lskj.PubAccraditation
}));
cachesDic.AddTask(tab_basicInfo, "DynamicModel", dynamicModelTask);
cachesDic.AddTask(tab_basicInfo, "Details", detailTask);
tab_basicInfo.GetDataCaches(cachesDic);
// TabControlEx.GetDataCaches 会创建明细页中的 WinForms/DevExpress
// 控件,不能在此后台预加载阶段调用;BindTab 在 UI 线程补充创建。
//BindBill
Task<DataTable> controlLocationTask = cachesDic.AddTask(this, "ControlLocation", new Task<DataTable>(() =>
{
@@ -975,6 +976,12 @@ namespace Lskj.PubAccraditation
{
this.tab_basicInfo.OnDetailSaveGridCallBack += Tab_basicInfo_OnDetailSaveGridCallBack;
}
if (dataCaches != null &&
dataCaches.GetTask<DynamicModel>(tab_basicInfo, "DynamicModel") != null &&
dataCaches.GetTask<List<GridDetailModel>>(tab_basicInfo, "Details") != null)
{
tab_basicInfo.GetDataCaches(dataCaches);
}
if (!dataCaches.GetValue(tab_basicInfo, "Details", out List<GridDetailModel> details))
{
details = GetTabDetails();
+12 -2
View File
@@ -295,9 +295,14 @@ namespace Lskj.PubAccraditation
tp.Controls.Add(frm);
tp.ShowCloseButton = DefaultBoolean.True;
tp.Dock = DockStyle.Fill;
StaticControl.ModuleResourceScope moduleScope =
StaticControl.RegisterModulePage(module, tp, frm);
ERPInfo.Instance.AddModulePage(tp);
ERPInfo.Instance.CurrentModulePage = tp;
frm.Show();
using (StaticControl.PushModuleScope(moduleScope))
{
frm.Show();
}
tp.Text = frm.Text;
ERPInfo.Instance.ModuleForms.Add(guid, module);
}
@@ -382,9 +387,14 @@ namespace Lskj.PubAccraditation
tp.Controls.Add(frm);
tp.ShowCloseButton = DefaultBoolean.True;
tp.Dock = DockStyle.Fill;
StaticControl.ModuleResourceScope moduleScope =
StaticControl.RegisterModulePage(module, tp, frm);
ERPInfo.Instance.AddModulePage(tp);
ERPInfo.Instance.CurrentModulePage = tp;
frm.Show();
using (StaticControl.PushModuleScope(moduleScope))
{
frm.Show();
}
tp.Text = frm.Text;
ERPInfo.Instance.ModuleForms.Add(guid, module);