public void Run(ThreadAllocator allocator)
        {
            if (Started)
            {
                throw new ThreadAlreadyStartedException();
            }
            Started = true;

            Thread = allocator.Allocate(Method);

            Thread.Start();
        }
 public ThreadManager()
 {
     Allocator = CreateAllocator();
 }