private void SplitWorkload(Workload ActiveWorkload, Worker Owner) { while (ActiveWorkload.HasWorkToDo) { foreach (Worker ActiveWorker in ListActiveWorker) { if (ActiveWorker == Owner) { continue; } else if (ActiveWorker.IsAlive()) { ActiveWorker.AddWork(ActiveWorkload.PullWork()); } } } }
private void btnConnect_Click(object sender, EventArgs e) { btnConnect.Enabled = false; gbWorkload.Enabled = true; ActiveWorker = ArrayWorkerChoice[cbWorkerType.SelectedIndex]; Workload AllWorkload = ActiveWorker.GetAllPossibleWorkload(); while (AllWorkload.HasWorkToDo) { string Work = AllWorkload.PullWork(); tvAvailableWorkload.Nodes.Add(Work); } Server.AddWorker(ActiveWorker); if (Server.IsWorking) { ActiveWorker.StartWorking(); } }