public void run() { SingleTon singleTon = SingleTon.GetInstance; List <string> stringList = singleTon.getThreadStringList(); for (int i = 0; i < 10; i++) { ObjectData objectData = new ObjectData() { StringList = stringList, Counter = i }; new WorkerThread(true, this, objectData); } while (true) { if (stringList.Count == 10) { break; } else { Console.WriteLine(stringList.Count); } } foreach (string s in stringList) { Console.WriteLine(s); } Console.WriteLine("End of therad Process."); }