Comment puis-je obtenir le résultat ou la valeur de retour d'une mission?
Quelqu'un peut m'expliquer comment faire pour retourner le résultat d'une Tâche?
Actuellement, je suis en train de faire ce qui suit, mais mes Tâches ne sont pas de retour de ma Liste que je m'attendre? Quel est le problème ici?
static void Main()
{
List<Task> tasks = new List<Task>();
List<string> sha256_hashes = new List<string>();
List<string> results = new List<string>();
sha256_hashes.Add("hash00");
sha256_hashes.Add("hash01");
sha256_hashes.Add("hash03");
foreach(string sha256 in sha256_hashes)
{
string _sha256 = sha256;
var task = Task.Factory.StartNew(() => GetAdditionalInfo(_sha256));
tasks.Add(task);
}
Task.WaitAll(tasks.ToArray());
//I want to put all the results of each task from tasks but the problem is
//I can't use the Result method from the _task because Result method is not available
//below is my plan to get all the results:
foreach(var _task in tasks)
{
if(_task.Result.Count >= 1) //got an error Only assignment, call, increment, dec....
results.AddRange(_task.Result); //got an error Only assignment, call, increment, dec....
}
//Do some work about results
}
static List<string> GetAdditionalInfo(string hash)
{
//this code returns information about the hash in List of strings
}
Task.Result
n'est pas le tableau.Task
n'ont pas de Result
propriété - il ressemble à tasks
devrait avoir le type List<Task<List<string>>>
OriginalL'auteur mhanne | 2014-12-11
Vous devez vous connecter pour publier un commentaire.
Pour renvoyer un résultat à partir d'un
Task
vous devez définir lesTask
en tant que tel:Task<TResult>
et passer le type de retour de la raison comme un paramètre générique. (Sinon, la Tâche sera de retour pour rien)Par Exemple:
Le problème, c'est que vous n'êtes pas en précisant que la Tâche va retourner tout ce.
Vous avez défini une Liste de Tâches qui ne retourne rien.
Ce que vous devez faire est de spécifier le type de retour de la
Task
lorsque vous définissezTask
que le type générique pour leList
dans votre cas. Quelque chose comme:C'est la façon dont vous spécifiez le type de retour pour une
Task
OriginalL'auteur Jason Roell