public async Task Start() { var server = new TcpListener(new IPAddress(new byte[] { 0, 0, 0, 0 }), 30000); server.Start(); Console.WriteLine("Accepting..."); var clients = new List <Task>(); var client = await server.AcceptTcpClientAsync(); Task.Factory.StartNew(() => _simulator.StatusPressureLevelAsync()); // start automated pump system clients.Add(RunWorker(client)); await Task.WhenAll(clients.ToArray()); }