void HandleTestAssemblyFinished(MessageHandlerArgs <ITestAssemblyFinished> args) { lock (clientLock) { assembliesInFlight--; if (assembliesInFlight == 0) { // Drain the queue client.WaitOne(CancellationToken.None); client.Dispose(); client = null; } } }