J'utilise ThreadPool avec le code Follwoing: - Je ne suis pas sûr de quoi o => code> est dans ce code. Quelqu'un peut-il m'aider? P> P>
3 Réponses :
Il décrit une fonction lambda (anonyme). Dans ce cas, il s'agit d'une fonction qui prend un argument, O, puis exécute une mycée (bien que dans ce cas, il s'agisse essentiellement de la valeur de O à distance). C'est équivalent à:
void Foo(object o) //We know that Foo takes an object and returns void because QueueUserWorkItem expects an instance of type WaitCallback which is a delegate that takes and object and returns void { MyFunction(); } ThreadPool.QueueUserWorkItem(Foo) // or ThreadPool.QueueUserWorkItem(new WaitCallback(Foo));
Juste pour clarifier, => est l'opérateur et o est le paramètre étant transmis. J'ai un coup d'œil à
@LZCD: Je ne l'appellerais pas un opérateur. C'est juste la syntaxe qui sépare les paramètres du corps de la Lambda.
Si je comprends bien, alors si je veux passer des paramètres à ma fonction, je peux le faire comme ceci: - Threadpool.QueueUeUserMorworkItem (O => MyFunction (O));
Il déclare une méthode anonyme. Fondamentalement, vous passez une méthode dont le corps est {mysculation (); } code> en tant que paramètre sur la méthode de WeeuUserSerWorkItem. Je n'ai pas vérifié, mais il devrait également être également équivalent à:
ThreadPool.QueueUserWorkItem(MyFunction);
Pas tout à fait je ne pense pas. QueueUserWorkItem s'attend à ce qu'un délégué accepte un objet comme argument; Par conséquent, Emballage MyFunction Code> dans une Lambda.
Ceci est la syntaxe C # pour une expression Lambda.
Il est à bien des égards une définition de déléguée en ligne. Cela vous permet de définir une fonction supplémentaire à utiliser comme cible de délégué. P>
private object Target(object state) { MyFunction(); } ... ThreadPool.QueueUserWorkItem(new WaitCallback(Target));
Je pense que vous voulez dire
() => myfunction () code>, il s'agit d'une lambda sans paramètre
@MYSTERE Man QueueUserMorworkItem s'attend à une instance de WaitingCallback, qui est un délégué pour des méthodes qui prennent et s'opposent et renvoient nulle. Donc, bien que étrange, la signature est correcte.