コード例 #1
0
        public async Task CloseAsync(string message, WebSocketCloseStatus status = WebSocketCloseStatus.NormalClosure)
        {
            if (Socket == null)
            {
                return;
            }

            Task receiveTask = ReceiveLoop.StopAsync();

            try
            {
                using var closeToken = new CancellationTokenSource(TimeSpan.FromSeconds(3));
                await Socket?.CloseAsync(status, message, closeToken.Token);
            }
            catch (Exception e)
            {
                Console.WriteLine(String.Format("Exception while closing : {0}", e.ToString()));
            }
            finally
            {
                CancellationSource?.Cancel();
                Socket?.Dispose();
                Socket = null;
                CancellationSource?.Dispose();
                CancellationSource = null;
            }
        }
コード例 #2
0
ファイル: RasDialService.cs プロジェクト: qcyb/pppoed
        private void SetUpCancellationSource(RasDialContext context)
        {
            CancellationSource?.Dispose();
            CancellationSource = CancellationTokenSource.CreateLinkedTokenSource(context.CancellationToken);

            // Ensures that the connection can be cancelled even if the callback is stuck.
            CancellationSource.Token.Register(() => OnCancellationRequestedCallback(context));
        }
コード例 #3
0
ファイル: RasDialService.cs プロジェクト: qcyb/pppoed
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                CancelAttemptIfBusy();

                CancellationSource?.Dispose();
                callbackHandler.Dispose();
            }

            base.Dispose(disposing);
        }
コード例 #4
0
ファイル: RasDialService.cs プロジェクト: zhaoyingju/DotRas
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (IsBusy)
                {
                    CancellationSource.Cancel();
                }

                CancellationSource?.Dispose();
                callbackHandler.Dispose();
            }

            base.Dispose(disposing);
        }
コード例 #5
0
ファイル: RasDialService.cs プロジェクト: zhaoyingju/DotRas
 private void SetUpCancellationSource(RasDialContext context)
 {
     CancellationSource?.Dispose();
     CancellationSource = cancellationSourceFactory.Create(context.CancellationToken);
 }
コード例 #6
0
 public void Dispose()
 {
     CancellationSource.Dispose();
 }
コード例 #7
0
 public void Dispose()
 {
     CancellationSource.Cancel();
     CancellationSource.Dispose();
     HttpUtils.Dispose();
 }
コード例 #8
0
 public void Dispose()
 {
     _httpListener = null;
     CancellationSource.Dispose();
 }