I find naming threads to be very useful when debugging.
I can see no way to name a thread using arguments to Task.Factory.StartNew()
So is it ac
The default TaskScheduler uses the .NET ThreadPool to schedule the tasks. So you will get a thread that already exists or one that will be reused (both potentially, but likely).
Note that you can only name a thread once. The second attempt to call Thread.CurrentThread.Name will raise an InvalidOperationException. This is particularly bad when it is a thread pool thread.
In general you should not change attributes of a thread that you did not (explicitly) create or own (the name being one, the priority being the other prominent candidates).