//限定传入类型为Func<...,Task>是为了避免传入async Action,那样没法等待async function结束。 public TaskWrapper(string name, Func <CancellationToken, Task> userAction, TaskCreationOptions taskCreationOptions = default(TaskCreationOptions)) { Util.CheckParam(userAction != null); _userAction = userAction; _taskCreationOptions = taskCreationOptions; _name = name; }
internal TcpChannel(TcpClient client) { Util.CheckParam(client != null); this._client = client; var iep = client?.Client.RemoteEndPoint as IPEndPoint; RemoteIP = iep?.Address.ToString(); #pragma warning disable 1998 _readTask = new TaskWrapper("Channel Listener", ReadWorker_DoWork, TaskCreationOptions.LongRunning); #pragma warning restore 1998 _readTask.Start(); }