schangxiang@126.com
2025-11-04 f5ed29dc26c7cd952d56ec5721a2efc43cd25992
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System;
using System.Threading;
using System.Threading.Tasks;
 
namespace Sodao.FastSocket.SocketBase.Utils
{
    /// <summary>
    /// task ex
    /// </summary>
    static public class TaskEx
    {
        /// <summary>
        /// delay
        /// </summary>
        /// <param name="dueTime"></param>
        static public Task Delay(int dueTime)
        {
            if (dueTime < -1) throw new ArgumentOutOfRangeException("dueTime");
 
            Timer timer = null;
            var source = new TaskCompletionSource<bool>();
            timer = new Timer(_ =>
            {
                using (timer) source.TrySetResult(true);
            }, null, dueTime, Timeout.Infinite);
 
            return source.Task;
        }
    }
}