public void distributeParallelCode(string[] statement) { //1. get IP to # CPU List<string> calculationComputers = new List<string>(); Hashtable IPtoCPU = new Hashtable();//should come from other modules int totalCPU = 0; foreach (DictionaryEntry allPeers in IPtoCPU) { foreach (DictionaryEntry permitted in permissions) { string[] temp = (string[])permitted.Value; if (allPeers.Key.ToString() == permitted.Key.ToString() && temp[0].ToString() == "true") { totalCPU = totalCPU + int.Parse(allPeers.Value.ToString()); calculationComputers.Add(permitted.Key.ToString()); } } } int LinePerCPU = (int)(statement.Length / totalCPU); string PortionStatement = PortionsIPXML(LinePerCPU, statement, calculationComputers, IPtoCPU); List<string> endPoints = Peers(); foreach (string dest in endPoints) { ThreadProc thrd = new ThreadProc(dest.ToString(), PortionStatement); Thread t = new Thread(new ThreadStart(thrd.sendThread)); t.Start(); } }