@@ -14,11 +14,6 @@ namespace GameFrameX.Core.Actors;
1414/// </summary>
1515public sealed class Actor : IActor , IDisposable
1616{
17- /// <summary>
18- /// 默认超时时长,使用int最大值表示无限等待
19- /// </summary>
20- public const int TimeOut = int . MaxValue ;
21-
2217 /// <summary>
2318 /// 组件映射字典,用于存储当前Actor下的所有组件实例
2419 /// </summary>
@@ -414,21 +409,31 @@ public override string ToString()
414409 /// 发送无返回值的工作指令到Actor队列
415410 /// </summary>
416411 /// <param name="work">要执行的工作内容</param>
417- /// <param name="timeOut">执行超时时间,默认为TimeOut常量值 </param>
412+ /// <param name="timeOut">执行执行超时时间(毫秒),默认为-1,将采用配置时间ActorTimeOut </param>
418413 /// <param name="cancellationToken">取消操作的令牌</param>
419- public void Tell ( Action work , int timeOut = TimeOut , CancellationToken cancellationToken = default )
414+ public void Tell ( Action work , int timeOut = - 1 , CancellationToken cancellationToken = default )
420415 {
416+ if ( timeOut <= 0 )
417+ {
418+ timeOut = GlobalSettings . CurrentSetting . ActorTimeOut ;
419+ }
420+
421421 WorkerActor . Tell ( work , timeOut , cancellationToken ) ;
422422 }
423423
424424 /// <summary>
425425 /// 发送异步工作指令到Actor队列
426426 /// </summary>
427427 /// <param name="work">要执行的异步工作内容</param>
428- /// <param name="timeOut">执行超时时间,默认为TimeOut常量值 </param>
428+ /// <param name="timeOut">执行执行超时时间(毫秒),默认为-1,将采用配置时间ActorTimeOut </param>
429429 /// <param name="cancellationToken">取消操作的令牌</param>
430- public void Tell ( Func < Task > work , int timeOut = TimeOut , CancellationToken cancellationToken = default )
430+ public void Tell ( Func < Task > work , int timeOut = - 1 , CancellationToken cancellationToken = default )
431431 {
432+ if ( timeOut <= 0 )
433+ {
434+ timeOut = GlobalSettings . CurrentSetting . ActorTimeOut ;
435+ }
436+
432437 WorkerActor . Tell ( work , timeOut , cancellationToken ) ;
433438 }
434439
@@ -446,11 +451,16 @@ public Task SendAsync(Action work)
446451 /// 发送带超时的异步工作指令
447452 /// </summary>
448453 /// <param name="work">要执行的工作内容</param>
449- /// <param name="timeout">执行超时时间(毫秒),默认为int.MaxValue </param>
454+ /// <param name="timeout">执行超时时间(毫秒),默认为-1,将采用配置时间ActorTimeOut </param>
450455 /// <param name="cancellationToken">取消操作的令牌</param>
451456 /// <returns>返回表示异步操作的Task</returns>
452457 public Task SendAsync ( Action work , int timeout , CancellationToken cancellationToken = default )
453458 {
459+ if ( timeout <= 0 )
460+ {
461+ timeout = GlobalSettings . CurrentSetting . ActorTimeOut ;
462+ }
463+
454464 return WorkerActor . SendAsync ( work , timeout , cancellationToken ) ;
455465 }
456466
@@ -459,36 +469,51 @@ public Task SendAsync(Action work, int timeout, CancellationToken cancellationTo
459469 /// </summary>
460470 /// <typeparam name="T">返回值类型</typeparam>
461471 /// <param name="work">要执行的工作内容</param>
462- /// <param name="timeout">超时时间,默认为TimeOut常量值 </param>
472+ /// <param name="timeout">执行超时时间(毫秒),默认为-1,将采用配置时间ActorTimeOut </param>
463473 /// <param name="cancellationToken">取消操作的令牌</param>
464474 /// <returns>返回指定类型的异步操作结果</returns>
465- public Task < T > SendAsync < T > ( Func < T > work , int timeout = TimeOut , CancellationToken cancellationToken = default )
475+ public Task < T > SendAsync < T > ( Func < T > work , int timeout = - 1 , CancellationToken cancellationToken = default )
466476 {
477+ if ( timeout <= 0 )
478+ {
479+ timeout = GlobalSettings . CurrentSetting . ActorTimeOut ;
480+ }
481+
467482 return WorkerActor . SendAsync ( work , timeout , cancellationToken ) ;
468483 }
469484
470485 /// <summary>
471486 /// 发送带锁检查的异步工作指令
472487 /// </summary>
473488 /// <param name="work">要执行的异步工作内容</param>
474- /// <param name="timeout">超时时间,默认为TimeOut常量值 </param>
489+ /// <param name="timeout">执行超时时间(毫秒),默认为-1,将采用配置时间ActorTimeOut </param>
475490 /// <param name="checkLock">是否检查锁,默认为true</param>
476491 /// <param name="cancellationToken">取消操作的令牌</param>
477492 /// <returns>返回表示异步操作的Task</returns>
478- public Task SendAsync ( Func < Task > work , int timeout = TimeOut , bool checkLock = true , CancellationToken cancellationToken = default )
493+ public Task SendAsync ( Func < Task > work , int timeout = - 1 , bool checkLock = true , CancellationToken cancellationToken = default )
479494 {
495+ if ( timeout <= 0 )
496+ {
497+ timeout = GlobalSettings . CurrentSetting . ActorTimeOut ;
498+ }
499+
480500 return WorkerActor . SendAsync ( work , timeout , checkLock , cancellationToken ) ;
481501 }
482502
483503 /// <summary>
484504 /// 发送不检查锁的异步工作指令
485505 /// </summary>
486506 /// <param name="work">要执行的异步工作内容</param>
487- /// <param name="timeout">超时时间,默认为TimeOut常量值 </param>
507+ /// <param name="timeout">执行超时时间(毫秒),默认为-1,将采用配置时间ActorTimeOut </param>
488508 /// <param name="cancellationToken">取消操作的令牌</param>
489509 /// <returns>返回表示异步操作的Task</returns>
490- public Task SendAsyncWithoutCheck ( Func < Task > work , int timeout = TimeOut , CancellationToken cancellationToken = default )
510+ public Task SendAsyncWithoutCheck ( Func < Task > work , int timeout = - 1 , CancellationToken cancellationToken = default )
491511 {
512+ if ( timeout <= 0 )
513+ {
514+ timeout = GlobalSettings . CurrentSetting . ActorTimeOut ;
515+ }
516+
492517 return WorkerActor . SendAsync ( work , timeout , false , cancellationToken ) ;
493518 }
494519
@@ -497,11 +522,16 @@ public Task SendAsyncWithoutCheck(Func<Task> work, int timeout = TimeOut, Cancel
497522 /// </summary>
498523 /// <typeparam name="T">返回值类型</typeparam>
499524 /// <param name="work">要执行的异步工作内容</param>
500- /// <param name="timeout">超时时间,默认为TimeOut常量值 </param>
525+ /// <param name="timeout">执行超时时间(毫秒),默认为-1,将采用配置时间ActorTimeOut </param>
501526 /// <param name="cancellationToken">取消操作的令牌</param>
502527 /// <returns>返回指定类型的异步操作结果</returns>
503- public Task < T > SendAsync < T > ( Func < Task < T > > work , int timeout = TimeOut , CancellationToken cancellationToken = default )
528+ public Task < T > SendAsync < T > ( Func < Task < T > > work , int timeout = - 1 , CancellationToken cancellationToken = default )
504529 {
530+ if ( timeout <= 0 )
531+ {
532+ timeout = GlobalSettings . CurrentSetting . ActorTimeOut ;
533+ }
534+
505535 return WorkerActor . SendAsync ( work , timeout , cancellationToken ) ;
506536 }
507537
0 commit comments