参考書のコードなのですがこのawaitasyncの使い方について混乱しています。
SampleAsync()asyncawaitの指定で何を処理しているのかを知りたいです。
非同期処理を同期処理のように書くことができると参考書にあるのですが、もっと解説が欲しいので質問しました。
1、質問なのですが、このコードは非同期処理のようで同期処理のような実行の仕方をしていると思われます。なぜなら結局処理を待たないといけないので...?

2,return await Task.Run()ではawait型ですか。Task t = なのでTask型でしょうか?

using System;
using System.Threading.Tasks;
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;


class Program
{
    public static  async Task<int> SampleAsync()
    {
        return await Task.Run(new Func<int>( () =>
        {
            int i = 0;
            for (; i < int.MaxValue; i++)
            {
                //Console.WriteLine(i);
            };

            return i;

        } ) );
    }

    public static void Main()
    {

        Task<int> t = SampleAsync();
        t.Wait();
        Console.WriteLine("完了:{0}", t.Result);   


        Console.ReadKey();
    }
}