C# Est l'action.BeginInvoke(l'action.EndInvoke,null) une bonne idée?

Si je veux faire un "fire and forget" de code, mais que vous voulez toujours vous assurer que ma mémoire est nettoyé (par Pourquoi ne asynchrone de la méthode du délégué appellent EndInvoke?), seront les suivantes atteindre cet objectif?

Action myAction = () => LongRunTime();
myAction.BeginInvoke(myAction.EndInvoke,null);

J'ai regardé mais je n'ai pas vu le modèle utilisé n'importe où. Plutôt, les gens utilisent un annonomoyus méthode que leur rappel (comme La bonne façon de mettre fin à un BeginInvoke?) ou ils définissent une réelle méthode de rappel. Puisque je n'ai pas vu quelqu'un d'autre le faire, ça me fait penser qu'il soit, n'a pas de travail ou qui est autrement une mauvaise idée.

Merci!

Je ne vois pas de problème avec l'aide d'une méthode de conversion de groupe au cours d'une expression lambda.
Si vous pouvez ajouter une réponse d'une manière ou d'une autre si cette technique ne sera pas provoquer une fuite de mémoire alors que serait la réponse que je cherche. Merci!

OriginalL'auteur Matt Klein | 2013-04-12