File tree 4 files changed +67
-0
lines changed
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
38
38
/// </remarks>
39
39
void SetOwner ( IComponent owner ) ;
40
40
41
+ /// <summary>
42
+ /// 组件激活前的回调方法
43
+ /// </summary>
44
+ /// <returns>表示异步操作的任务</returns>
45
+ /// <remarks>
46
+ /// 在组件开始激活流程前执行,可以用于进行一些预处理操作
47
+ /// </remarks>
48
+ Task BeforeActivation ( ) ;
49
+
41
50
/// <summary>
42
51
/// 激活组件代理
43
52
/// <remarks>
@@ -46,6 +55,24 @@ public interface IComponentAgent : IWorker
46
55
/// </summary>
47
56
Task Active ( ) ;
48
57
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
+
49
76
/// <summary>
50
77
/// 反激活组件代理
51
78
/// </summary>
@@ -55,6 +82,15 @@ public interface IComponentAgent : IWorker
55
82
/// </remarks>
56
83
Task Inactive ( ) ;
57
84
85
+ /// <summary>
86
+ /// 组件反激活后的回调方法
87
+ /// </summary>
88
+ /// <returns>表示异步操作的任务</returns>
89
+ /// <remarks>
90
+ /// 在组件完成反激活流程后执行,可以用于确认清理完成或执行最终操作
91
+ /// </remarks>
92
+ Task AfterInActivation ( ) ;
93
+
58
94
/// <summary>
59
95
/// 根据代理类型获取代理组件
60
96
/// </summary>
Original file line number Diff line number Diff line change @@ -149,7 +149,9 @@ async Task Worker()
149
149
150
150
try
151
151
{
152
+ await agent . AfterActivation ( ) ;
152
153
await agent . Active ( ) ;
154
+ await agent . BeforeActivation ( ) ;
153
155
}
154
156
catch ( Exception e )
155
157
{
@@ -184,7 +186,9 @@ async Task Worker()
184
186
185
187
try
186
188
{
189
+ await agent . AfterActivation ( ) ;
187
190
await agent . Active ( ) ;
191
+ await agent . BeforeActivation ( ) ;
188
192
}
189
193
catch ( Exception e )
190
194
{
Original file line number Diff line number Diff line change @@ -86,7 +86,9 @@ public virtual async Task Inactive()
86
86
var agent = GetAgent ( ) ;
87
87
if ( agent != null )
88
88
{
89
+ await agent . AfterInActivation ( ) ;
89
90
await agent . Inactive ( ) ;
91
+ await agent . BeforeInActivation ( ) ;
90
92
}
91
93
92
94
IsActive = false ;
Original file line number Diff line number Diff line change @@ -67,14 +67,33 @@ public void SetOwner(IComponent owner)
67
67
Owner = owner ;
68
68
}
69
69
70
+ /// <summary>
71
+ /// 组件激活前的预处理操作
72
+ /// </summary>
73
+ /// <returns>一个已完成的任务</returns>
74
+ public virtual Task BeforeActivation ( ) => Task . CompletedTask ;
75
+
70
76
/// <summary>
71
77
/// 激活组件
72
78
/// </summary>
79
+ /// <returns>一个已完成的任务</returns>
73
80
public virtual Task Active ( )
74
81
{
75
82
return Task . CompletedTask ;
76
83
}
77
84
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
+
78
97
/// <summary>
79
98
/// 反激活组件
80
99
/// </summary>
@@ -84,6 +103,12 @@ public virtual Task Inactive()
84
103
return Task . CompletedTask ;
85
104
}
86
105
106
+ /// <summary>
107
+ /// 组件反激活后的后处理操作
108
+ /// </summary>
109
+ /// <returns>一个已完成的任务</returns>
110
+ public virtual Task AfterInActivation ( ) => Task . CompletedTask ;
111
+
87
112
/// <summary>
88
113
/// 根据代理类型获取组件代理实例
89
114
/// </summary>
You can’t perform that action at this time.
0 commit comments