//Process a recieved order public void setOrder(String[] orderString) { // get encoder - did we want to use a singleton here? Decoder d = new Decoder(); OrderClass order; Thread[] thread = new Thread[orderString.Length]; // decode all orders for (int i = 0; i < orderString.Length; ++i) { // set the order an decrypt d.setOrder(orderString[i]); // get the decrypeted order order = d.getOrder(); // need to call OrderProcessing thread[i] = new Thread(new ParameterizedThreadStart(Worker)); thread[i].Start(order); //Increment order counter counter++; } }