private void bTest1Click(object sender, RoutedEventArgs e) { SetupScene(Convert.ToInt32(this.tbStepRange.Text)); binding.SendTimeout = new TimeSpan(0, 2, 0); int n = Clients.ListClients.Count; for (int i = n - 1; i >= 0; i--) //при повторном запуске задачи проверяет наличие соединения между сервером и клиентом { //чтобы убрать из списка клиентов те клиенты, которые выдали ошибку при предыдущем вычислении задачи. try //Если же соединение было обнаружено, то клиент остается в списке { if (Clients.ListClients [i].Done == "Not ready") { ClientServiceClient client = new ClientServiceClient(binding, new EndpointAddress("http://" + Clients.ListClients [i].IP + ":8734/ClientService/")); if (client.CheckConnection() == true) { Clients.ListClients [i].Done = " "; } } } catch (Exception) { Clients.RemoveClient(Clients.ListClients [i].IP); } } RayTracer.RayTracer raytracer = new RayTracer.RayTracer(antiAliasing, renderDiffuse, renderHighlights, renderShadow, renderReflection, renderRefraction); clients = new ClientServiceClient [Clients.ListClients.Count]; Steps = Convert.ToInt32(tbRectangles.Text); // # of rectangles for (int i = 0; i < Clients.ListClients.Count; i++) { EndpointAddress address = new EndpointAddress("http://" + Clients.ListClients [i].IP + ":8734/ClientService/"); clients [i] = new ClientServiceClient(binding, address); clients [i].PerfomanceCompleted += MainWindow_PerfomanceCompleted; clients [i].PerfomanceAsync(scene, rect, raytracer, Steps, i); } bGO.IsEnabled = true; }