public static async Task DeployTorClients(int count) { var taskWaitingConfigurationEnd = new List <Task>(); for (var i = 0; i < count; i++) { var offset = i * 3; var extractedToolsDirectory = Path.Combine(Path.GetTempPath(), "Tor", "TorExtracted" + i); var settings = new TorSharpSettings { ZippedToolsDirectory = Path.Combine(Path.GetTempPath(), "Tor", "TorZipped"), ExtractedToolsDirectory = extractedToolsDirectory, PrivoxyPort = 1337 + offset, TorSocksPort = 1338 + offset, TorControlPort = 1339 + offset, TorControlPassword = "******" + i, TorDataDirectory = Path.Combine(extractedToolsDirectory, "DataDirectory") }; var torSharpProxy = new TorSharpProxy(settings); await torSharpProxy.ConfigureAndStartAsync(); ProxyList.Add($"http://localhost:{settings.PrivoxyPort}"); taskWaitingConfigurationEnd.Add(torSharpProxy.WaitForConnectionAsync()); } Task.WaitAll(taskWaitingConfigurationEnd.ToArray()); }