2010-03-04 2 views
0

Je souhaite passer un délégué avec le type de retour comme ArrayList comme paramètre de thread et je souhaite également stocker les valeurs dans un ArrayList. Toute aide à cet égard sera appréciée.Passer un délégué avec un type de retour autre que void dans le thread

+1

Vous ne pouvez pas faire cela, il n'y a aucun moyen d'obtenir la valeur de retour lorsque le thread est terminé. Pouvez-vous nous en dire plus sur ce que vous voulez faire pour que nous puissions vous donner de vraies alternatives? –

+0

Pourriez-vous expliquer plus? Votre question est très floue. –

Répondre

0

Au lieu d'avoir une valeur de retour, vous pouvez essayer de passer dans un autre paramètre par référence:

private class ThreadArguments 
{  
    public ArrayList List1 { get; set; } 
    public ArrayList List2 { get; set; } 

    public ThreadArguments(ArrayList list1, ref ArrayList list2) 
    { 
     this.List1 = list1; 
     this.List2 = list2; 
    } 
} 

Thread myThread = new Thread(new ParameterizedThreadStart(...)); 
myThread.Start(args); 

Ainsi, la valeur de retour est effectivement remplacé par liste2.

+0

Merci j'ai résolu mon problème avec une approche différente au lieu de retourner la valeur par le fil. –

Questions connexes