static void Main(string[] args) { Console.Write("request count(8 recommanded): "); var requestCount = int.Parse(Console.ReadLine()); ServicePointManager.DefaultConnectionLimit = 10000; var alert = new AlertInSecond(); var ss = new SemaphoreSlim(requestCount, requestCount); while (true) { ss.Wait(); Task.Run(OneRequest).ContinueWith(t => { if (t.Status == TaskStatus.Faulted) { alert.AddOneFail(); } else { var response = t.Result; if (response.StatusCode == HttpStatusCode.OK) { alert.AddOneSuccess(); } else { alert.AddOneFail(); } } ss.Release(); }); } }