first sorry if I give'nt you a good answer because I dont undertand you a lot, ok this is fact: if you need know the process data of this 4 thread, you can use many tools, such as delegate, create a delegate and add all this function inside this, and then put the delegate on execution, for more explanation look this example, using a ProgressBar... public delegate void ExceutionAsyncronous(); public void function1(){} public void function2(){} public void function3(){} public void RequestTime(ProgressBar som, int value, int max) { som.Increment(value++,max); } inside your function put this method "RequestTime" in a way that the increment always keeping inside a correct interval, an then ... ExceutionAsyncronous ob = new ExceutionAsyncronous(function1); ob+=new ExceutionAsyncronous(function2); ob+=new ExceutionAsyncronous(function3); ob(); Remember that this explanation only want give you a Idea, ok if you need know anything else, please write me ok :-D:-D:-D