1- namespace GameFrameX . Core . Abstractions ;
2-
3- /// <summary>
4- /// 工作Actor接口定义
5- /// </summary>
6- public interface IWorkerActor : IWorker
7- {
8- /// <summary>
9- /// 判断是否需要入队
10- /// </summary>
11- /// <returns>一个元组,包含是否需要入队的布尔值和调用链ID</returns>
12- ( bool needEnqueue , long chainId ) IsNeedEnqueue ( ) ;
13-
14- /// <summary>
15- /// 将无返回值的委托入队
16- /// </summary>
17- /// <param name="work">无返回值的委托</param>
18- /// <param name="callChainId">调用链ID</param>
19- /// <param name="discard">是否强制入队</param>
20- /// <param name="timeOut">超时时间</param>
21- /// <returns>一个表示异步操作的任务</returns>
22- Task Enqueue ( Action work , long callChainId , bool discard = false , int timeOut = int . MaxValue ) ;
23-
24- /// <summary>
25- /// 将有返回值的委托入队
26- /// </summary>
27- /// <param name="work">有返回值的委托</param>
28- /// <param name="callChainId">调用链ID</param>
29- /// <param name="discard">是否强制入队</param>
30- /// <param name="timeOut">超时时间</param>
31- /// <typeparam name="T">泛型参数</typeparam>
32- /// <returns>一个表示异步操作的任务,任务结果为委托的返回值</returns>
33- Task < T > Enqueue < T > ( Func < T > work , long callChainId , bool discard = false , int timeOut = int . MaxValue ) ;
34-
35- /// <summary>
36- /// 将返回Task的委托入队
37- /// </summary>
38- /// <param name="work">返回Task的委托</param>
39- /// <param name="callChainId">调用链ID</param>
40- /// <param name="discard">是否强制入队</param>
41- /// <param name="timeOut">超时时间</param>
42- /// <returns>一个表示异步操作的任务</returns>
43- Task Enqueue ( Func < Task > work , long callChainId , bool discard = false , int timeOut = int . MaxValue ) ;
44-
45- /// <summary>
46- /// 将返回Task<T>的委托入队</T>
47- /// </summary>
48- /// <param name="work">返回Task<T>的委托</T></param>
49- /// <param name="callChainId">调用链ID</param>
50- /// <param name="discard">是否强制入队</param>
51- /// <param name="timeOut">超时时间</param>
52- /// <typeparam name="T">泛型参数</typeparam>
53- /// <returns>一个表示异步操作的任务,任务结果为委托的返回值</returns>
54- Task < T > Enqueue < T > ( Func < Task < T > > work , long callChainId , bool discard = false , int timeOut = int . MaxValue ) ;
1+ namespace GameFrameX . Core . Abstractions ;
2+
3+ /// <summary>
4+ /// 工作Actor接口定义
5+ /// 用于处理异步任务队列的Actor接口,继承自IWorker接口
6+ /// </summary>
7+ public interface IWorkerActor : IWorker
8+ {
9+ /// <summary>
10+ /// 判断是否需要入队
11+ /// 检查当前任务是否需要进入队列进行处理
12+ /// </summary>
13+ /// <returns>返回一个元组,包含两个值:needEnqueue(bool类型,表示是否需要入队)和chainId(long类型,表示调用链ID)</returns>
14+ ( bool needEnqueue , long chainId ) IsNeedEnqueue ( ) ;
15+
16+ /// <summary>
17+ /// 将无返回值的委托入队
18+ /// 将Action类型的委托添加到任务队列中进行异步处理
19+ /// </summary>
20+ /// <param name="work">要执行的无返回值委托方法</param>
21+ /// <param name="callChainId">用于跟踪调用链的唯一标识符</param>
22+ /// <param name="discard">当为true时,表示强制将任务入队,即使队列已满也会尝试入队</param>
23+ /// <param name="timeOut">任务执行的超时时间,默认为int.MaxValue</param>
24+ /// <param name="cancellationToken">用于取消操作的令牌</param>
25+ /// <returns>表示异步操作的Task对象</returns>
26+ Task Enqueue ( Action work , long callChainId , bool discard = false , int timeOut = int . MaxValue , CancellationToken cancellationToken = default ) ;
27+
28+ /// <summary>
29+ /// 将有返回值的委托入队
30+ /// 将Func<T/>类型的委托添加到任务队列中进行异步处理
31+ /// </summary>
32+ /// <param name="work">要执行的有返回值委托方法</param>
33+ /// <param name="callChainId">用于跟踪调用链的唯一标识符</param>
34+ /// <param name="discard">当为true时,表示强制将任务入队,即使队列已满也会尝试入队</param>
35+ /// <param name="timeOut">任务执行的超时时间,默认为int.MaxValue</param>
36+ /// <param name="cancellationToken">用于取消操作的令牌</param>
37+ /// <typeparam name="T">委托返回值的类型</typeparam>
38+ /// <returns>表示异步操作的Task<T/>对象,其结果为委托的返回值</returns>
39+ Task < T > Enqueue < T > ( Func < T > work , long callChainId , bool discard = false , int timeOut = int . MaxValue , CancellationToken cancellationToken = default ) ;
40+
41+ /// <summary>
42+ /// 将返回Task的委托入队
43+ /// 将Func<Task/>类型的委托添加到任务队列中进行异步处理
44+ /// </summary>
45+ /// <param name="work">要执行的返回Task的异步委托方法</param>
46+ /// <param name="callChainId">用于跟踪调用链的唯一标识符</param>
47+ /// <param name="discard">当为true时,表示强制将任务入队,即使队列已满也会尝试入队</param>
48+ /// <param name="timeOut">任务执行的超时时间,默认为int.MaxValue</param>
49+ /// <param name="cancellationToken">用于取消操作的令牌</param>
50+ /// <returns>表示异步操作的Task对象</returns>
51+ Task Enqueue ( Func < Task > work , long callChainId , bool discard = false , int timeOut = int . MaxValue , CancellationToken cancellationToken = default ) ;
52+
53+ /// <summary>
54+ /// 将返回Task<T/>的委托入队
55+ /// 将Func<Task/><T/>>类型的委托添加到任务队列中进行异步处理
56+ /// </summary>
57+ /// <param name="work">要执行的返回Task<T/>的异步委托方法</param>
58+ /// <param name="callChainId">用于跟踪调用链的唯一标识符</param>
59+ /// <param name="discard">当为true时,表示强制将任务入队,即使队列已满也会尝试入队</param>
60+ /// <param name="timeOut">任务执行的超时时间,默认为int.MaxValue</param>
61+ /// <param name="cancellationToken">用于取消操作的令牌</param>
62+ /// <typeparam name="T">异步操作返回值的类型</typeparam>
63+ /// <returns>表示异步操作的Task<T/>对象,其结果为委托的返回值</returns>
64+ Task < T > Enqueue < T > ( Func < Task < T > > work , long callChainId , bool discard = false , int timeOut = int . MaxValue , CancellationToken cancellationToken = default ) ;
5565}
0 commit comments