参考書のにタスク、スレッドプール、パラレルと async,awaitの4っの同じようなやり方?
のやり方が記載されているのですがつまりどれを使えばいいのでしょうか?

class Program  
{           

    public static async Task<int> method()
    {
        return await Task<int>.Run(() => {
            Thread.Sleep(3000);
            Console.WriteLine("finish");
            return 1;
        });
    }

    public static void method2(Object t)
    {
        Console.WriteLine("finish");
    }

    public static void method3()
    {
        Console.WriteLine("finish");
    }

    static void Main(string[] args)
    {
        //ThreadPool  
        ThreadPool.QueueUserWorkItem(new WaitCallback(method2),"1");
        //task
        Task task = Task.Run(new Action(method3));
        //Parallel
        Parallel.Invoke(new Action(method3));

        Task<int> t = method();
        Console.WriteLine(t.Result);

        Console.ReadKey();
    }
}