File tree Expand file tree Collapse file tree 4 files changed +67
-0
lines changed
Expand file tree Collapse file tree 4 files changed +67
-0
lines changed Original file line number Diff line number Diff line change @@ -38,6 +38,15 @@ public interface IComponentAgent : IWorker
3838 /// </remarks>
3939 void SetOwner ( IComponent owner ) ;
4040
41+ /// <summary>
42+ /// 组件激活前的回调方法
43+ /// </summary>
44+ /// <returns>表示异步操作的任务</returns>
45+ /// <remarks>
46+ /// 在组件开始激活流程前执行,可以用于进行一些预处理操作
47+ /// </remarks>
48+ Task BeforeActivation ( ) ;
49+
4150 /// <summary>
4251 /// 激活组件代理
4352 /// <remarks>
@@ -46,6 +55,24 @@ public interface IComponentAgent : IWorker
4655 /// </summary>
4756 Task Active ( ) ;
4857
58+ /// <summary>
59+ /// 组件激活后的回调方法
60+ /// </summary>
61+ /// <returns>表示异步操作的任务</returns>
62+ /// <remarks>
63+ /// 在组件完成激活流程后执行,可以用于处理一些初始化后的逻辑
64+ /// </remarks>
65+ Task AfterActivation ( ) ;
66+
67+ /// <summary>
68+ /// 组件反激活前的回调方法
69+ /// </summary>
70+ /// <returns>表示异步操作的任务</returns>
71+ /// <remarks>
72+ /// 在组件开始反激活流程前执行,可以用于保存状态或清理资源
73+ /// </remarks>
74+ Task BeforeInActivation ( ) ;
75+
4976 /// <summary>
5077 /// 反激活组件代理
5178 /// </summary>
@@ -55,6 +82,15 @@ public interface IComponentAgent : IWorker
5582 /// </remarks>
5683 Task Inactive ( ) ;
5784
85+ /// <summary>
86+ /// 组件反激活后的回调方法
87+ /// </summary>
88+ /// <returns>表示异步操作的任务</returns>
89+ /// <remarks>
90+ /// 在组件完成反激活流程后执行,可以用于确认清理完成或执行最终操作
91+ /// </remarks>
92+ Task AfterInActivation ( ) ;
93+
5894 /// <summary>
5995 /// 根据代理类型获取代理组件
6096 /// </summary>
Original file line number Diff line number Diff line change @@ -149,7 +149,9 @@ async Task Worker()
149149
150150 try
151151 {
152+ await agent . AfterActivation ( ) ;
152153 await agent . Active ( ) ;
154+ await agent . BeforeActivation ( ) ;
153155 }
154156 catch ( Exception e )
155157 {
@@ -184,7 +186,9 @@ async Task Worker()
184186
185187 try
186188 {
189+ await agent . AfterActivation ( ) ;
187190 await agent . Active ( ) ;
191+ await agent . BeforeActivation ( ) ;
188192 }
189193 catch ( Exception e )
190194 {
Original file line number Diff line number Diff line change @@ -86,7 +86,9 @@ public virtual async Task Inactive()
8686 var agent = GetAgent ( ) ;
8787 if ( agent != null )
8888 {
89+ await agent . AfterInActivation ( ) ;
8990 await agent . Inactive ( ) ;
91+ await agent . BeforeInActivation ( ) ;
9092 }
9193
9294 IsActive = false ;
Original file line number Diff line number Diff line change @@ -67,14 +67,33 @@ public void SetOwner(IComponent owner)
6767 Owner = owner ;
6868 }
6969
70+ /// <summary>
71+ /// 组件激活前的预处理操作
72+ /// </summary>
73+ /// <returns>一个已完成的任务</returns>
74+ public virtual Task BeforeActivation ( ) => Task . CompletedTask ;
75+
7076 /// <summary>
7177 /// 激活组件
7278 /// </summary>
79+ /// <returns>一个已完成的任务</returns>
7380 public virtual Task Active ( )
7481 {
7582 return Task . CompletedTask ;
7683 }
7784
85+ /// <summary>
86+ /// 组件激活后的后处理操作
87+ /// </summary>
88+ /// <returns>一个已完成的任务</returns>
89+ public virtual Task AfterActivation ( ) => Task . CompletedTask ;
90+
91+ /// <summary>
92+ /// 组件反激活前的预处理操作
93+ /// </summary>
94+ /// <returns>一个已完成的任务</returns>
95+ public virtual Task BeforeInActivation ( ) => Task . CompletedTask ;
96+
7897 /// <summary>
7998 /// 反激活组件
8099 /// </summary>
@@ -84,6 +103,12 @@ public virtual Task Inactive()
84103 return Task . CompletedTask ;
85104 }
86105
106+ /// <summary>
107+ /// 组件反激活后的后处理操作
108+ /// </summary>
109+ /// <returns>一个已完成的任务</returns>
110+ public virtual Task AfterInActivation ( ) => Task . CompletedTask ;
111+
87112 /// <summary>
88113 /// 根据代理类型获取组件代理实例
89114 /// </summary>
You can’t perform that action at this time.
0 commit comments