private void StartCheckingIfClientIsAlive(int clientPid, ClientDisconnectBehaviour behaviour) => Task.Run(() => { while (!_cancellationSource.IsCancellationRequested && ClientIsAlive(clientPid)) { Tick(500); } if (_cancellationSource.IsCancellationRequested) { return; } switch (behaviour) { case ClientDisconnectBehaviour.ShutdownApplication: Stop(); Environment.Exit(0); break; case ClientDisconnectBehaviour.DisposeServer: Stop(); break; case ClientDisconnectBehaviour.KeepAlive: break; } });
public void UseClientDisconnectBehaviour(ClientDisconnectBehaviour behaviour) { _clientDisconnectBehaviour = behaviour; }