با سلام
کد ارتباط کلاینت با سرور
public ServiceResult Request(string item) { string response; string uriString = "..."; ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) => { return true; }; using (var ClientRequest = new WebClient()) { ClientRequest.Headers["Content-type"] = "application/json"; ClientRequest.Encoding = Encoding.UTF8; NetworkCredential credential1 = new NetworkCredential("1", "1"); ClientRequest.Credentials = credential1; response = ClientRequest.DownloadString(uriString); } ServiceResult result = new JavaScriptSerializer().Deserialize<ServiceResult>(response); return result; }
کد ارسال درخواست های همزمان موازی
Parallel.ForEach(items, item => { var result = service.Request(item); lock (lstLog) { Dispatcher.Invoke(() => { lstLog.Items.Add(result.Log); }); } });
آیا مشکل از کد سمت کلاینت هستش که گذاشتم ؟
درخواست ها خیلی کند پاسخ داده میشن بعضا بعضی ها تا 2 یا 3 ثانیه هم طول میکشه که پاسخ رو دریافت کنند! (این رو هم در نظر بگیرید که پردازنده و رم رو توی سرور چک میکنم اصلا باری روشون نیست.
درصورتی که همین رو با یک foreach ساده پشت هم درخواست بدم زمان پاسخ دهی هر درخواست سریعتر است گرچه درکل، حالت موازی نتیجه ی کلی را سریعتر میدهد اما زمان پاسخ دهی هر درخواست خیلی کندتره!
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)