Essayer de passer fonction au lieu d'expression lambda et enfin mélangé pourquoi ligne:Créer une tâche sans lambda
int t2 = await Task.Run(()=>Allocate2());
soulève pas d'erreur. Cette expression lambda ()=>Allocate2()
ne renvoie pas Task
. Pourquoi pas d'erreur?
Comment créer une tâche sans expression lambda avec la fonction 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) renvoie' Task'. Ce que cette tâche fait à l'intérieur est une autre histoire (voir les surcharges). – Sinatr
en cours d'exécution, j'obtiens cette erreur 'Impossible de convertir le type 'int' en 'System.Threading.Tasks.Task'' car votre type de retour n'est pas compatible. mais qu'est-ce que vous essayez d'accomplir? –
J'essaie d'exécuter la tâche sans utiliser l'expression lambda – vico