//限定传入类型为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;
        }
Example #2
0
        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();
        }