Example #1
0
 /// <summary>
 /// 执行通道关闭事件(手动关闭),此时通道的资源还不会被释放,可以重新启用
 /// </summary>
 public Task fireOnChannelClose(TaskCompletionSource promise)
 {
     parent.SetClose();
     Execute(() =>
     {
         pipeline.fireChannelClose();
         promise.Success();
     });
     return(promise.Task);
 }
Example #2
0
 /// <summary>
 /// 执行通道连接事件,可以进行读取和写入操作
 /// </summary>
 public Task fireOnChannelActive(TaskCompletionSource promise, Action callback = null)
 {
     Execute(() =>
     {
         pipeline.fireChannelActive();
         callback?.Invoke();
         promise.Success();
     });
     return(promise.Task);
 }
Example #3
0
        public override Task DoConnect(EndPoint remote = null)
        {
            var promise = new TaskCompletionSource();

            Execute(() =>
            {
                connectEventArgs.RemoteEndPoint = remote;

                if (!Socket.ConnectAsync(connectEventArgs))
                {
                    ProcessConnect(connectEventArgs);
                }

                promise.Success();
            });

            return(promise.Task);
        }
Example #4
0
 internal PendingMessage Success()
 {
     Promise.Success();
     return(this);
 }
Example #5
0
 public Task fireOnChannelDisConnection(TaskCompletionSource promise)
 {
     promise.Success();
     return(promise.Task);
 }
Example #6
0
 /// <summary>
 /// 执行通道终止事件
 /// </summary>
 public Task fireOnShutdown(TaskCompletionSource promise)
 {
     parent.SetShutdown();
     promise.Success();
     return(promise.Task);
 }