せずにタスクを作成します。代わりにラムダ式を関数を渡すしようとすると、最終的にラインアップなぜ混合ラムダ
int t2 = await Task.Run(()=>Allocate2());
にエラーが発生しません。このラムダ式()=>Allocate2()
はTask
を返します。なぜエラーがない?
関数Allocate
でラムダ式を使用しないタスクを作成するにはどうすればよいですか?
static async void Example()
{
int t = await Task.Run(Allocate);
int t2 = await Task.Run(()=>Allocate2());
Console.WriteLine("Compute: " + t);
}
static Task<int> Allocate()
{
return 1;
}
static int Allocate2()
{
return 1;
}
['Task.Run'](https://msdn.microsoft.com/en-us/library/hh195051(v = vs.110).aspx)は' Task'を返します。このタスクが内部で行っていることは別の話です(オーバーロードを参照)。 – Sinatr
これを実行していますが、「戻り値の型が一致していないため、暗黙のうちに型 'int'を 'System.Threading.Tasks.Task'に変換できません。あなたが達成しようとしていることは何ですか? –
私はラムダ式 – vico