J'implémente une interface qui nécessite des implémentations des méthodes BeginDoSomething
et EndDoSomething
. Cependant, mon DoSomething
n'est pas très long. Par souci de simplicité suppose DoSomething
ne compare que deux variables et le retour si a> bComment créer un IAsyncResult qui se termine immédiatement?
Donc, mon BeginDoSomething devrait ressembler à:
protected override IAsyncResult BeginDoSomething(int a, int b, AsyncCallback callback, object state)
{
bool returnValue = a > b;
return ...; //what should I return here?
//The method actually already completed and I don't need to wait for anything
}
Je ne sais pas ce que je devrais revenir. Je n'implémente que BeginDoSomething
parce que je le dois, pas parce que ma méthode est longue. Dois-je implémenter le mien IAsyncResult
? Existe-t-il déjà une implémentation dans les bibliothèques .NET?
Pas vraiment rapide mais difficile à discuter avec la simplicité. Omettez returnValue. Je ne vois pas l'erreur. –
ce qui devrait être dans le 'EndDoSomething' alors? Je suis désolé, je suis très nouveau sur la programmation asynchrone –
dans End * ce serait la même chose que func.BeginInvoke: IAsyncResult, donc vous déléguez la responsabilité à l'implémentation de Delegate. – Henrik