I am a beginner and don't know much about this subject. But apparently, all these statements allows the application to run its tasks in background threads. This is really confusing. Which ones should be used/not used or preferred?
Task t = new Task( () => doSomeWork() );
t.Start();
And
Task t = Task.Run( () => doSomeWork1() );
And
Task t = Task.Factory.StartNew( () => doSomeWork2() );
And
Thread t = new Thread(new ThreadStart( doSomeWork3 ));
t.Start();
And probably there are even more like BackgroundWorker
. Which and when these should be used?