From ec18f7a1cb337a914f20786833fc7148c0ad23e2 Mon Sep 17 00:00:00 2001 From: BrennanConroy Date: Thu, 31 Aug 2017 15:31:10 -0700 Subject: [PATCH] Close the ClientSample app when connection closed (#805) --- samples/ClientSample/HubSample.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/samples/ClientSample/HubSample.cs b/samples/ClientSample/HubSample.cs index d892963c01..f63d3caa4a 100644 --- a/samples/ClientSample/HubSample.cs +++ b/samples/ClientSample/HubSample.cs @@ -51,9 +51,24 @@ namespace ClientSample // Set up handler connection.On("Send", Console.WriteLine); + connection.Closed += e => + { + Console.WriteLine("Connection closed."); + cts.Cancel(); + return Task.CompletedTask; + }; + + var ctsTask = Task.Delay(-1, cts.Token); + while (!cts.Token.IsCancellationRequested) { - var line = await Task.Run(() => Console.ReadLine(), cts.Token); + var completedTask = await Task.WhenAny(Task.Run(() => Console.ReadLine(), cts.Token), ctsTask); + if (completedTask == ctsTask) + { + break; + } + + var line = await (Task)completedTask; if (line == null) {