非同期処理の初歩、awaitとasyncで処理内容をもっと知りたい。
参考書のコードなのですがこのawait
とasync
の使い方について混乱しています。
SampleAsync()
のasync
とawait
の指定で何を処理しているのかを知りたいです。
非同期処理を同期処理のように書くことができると参考書にあるのですが、もっと解説が欲しいので質問しました。
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();
}
}