Every time you instantiate that class you create a thread. Threads are expensive and very difficult to test. If you instantiate many objects you will run into performance problems, you should consider a ThreadPool to fix a limit on the number of threads. Also, if you will have trouble trying to unit test whatever behavior is happening in the thread.