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;
}
}
}