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) {