using System; using System.Threading; using System.Threading.Tasks; namespace Sodao.FastSocket.SocketBase.Utils { /// /// task ex /// static public class TaskEx { /// /// delay /// /// static public Task Delay(int dueTime) { if (dueTime < -1) throw new ArgumentOutOfRangeException("dueTime"); Timer timer = null; var source = new TaskCompletionSource(); timer = new Timer(_ => { using (timer) source.TrySetResult(true); }, null, dueTime, Timeout.Infinite); return source.Task; } } }