cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 2013
-
9 juin 2006 à 12:00
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 2013
-
9 juin 2006 à 23:21
Bonjour à tous,
Bon j'ai déjà été confronté plusieurs fois à ce problème, et je crois que je n'ai jamais vraiment trouvé de solution très propre à ce problème :
J'ai une méthode qui est appelée de manière asynchrone. Quand le processus est terminé, j'ai un event qui est déclenché, qui me permet de savoir si y'a eu des erreurs durant le processus. Si oui, j'aimerais faire quelque chose pour pouvoir prendre en charge ce probleme (comme par exemple, lever une exception), mais à vrai dire je n'arrive pas à la catcher par la suite, étant donné que je suis dans un context asynchrone.
private
void FinDeLoperation(
object sender, My
EventArgs e)
{
if (e.Error = =
null)
{
// Mon traitement
}
else
{
// Que faire ? Sachant que je ne peux pas traiter l'erreur ici, il faut que je puisse "la remonter"
}
}
public void Start()
{
this.X.StartAsyncMethod(....);
}
Si je mets un try-ctach dans la méthode Start, ça ne fonctionne pas (normal je pense).
S'il se passe un problème durant le processus, je dois évidemment faire certaine action, donc comment faire pour traiter l'erreur ?
Merci !
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 9 juin 2006 à 12:47
Alors vivement qu'il sorte cet article! ;-)
Sinon, la méthode que j'appelle est en fait un WebService (tu devines lequel? lol) et le webService m'offre une méthode GetNextMoveAsync puis quand le web service a terminé le traitement, je tombe dans
this._game.Move(e.Result);
}
}
Si Error est différent de null alors ya eu un problème, (il a pas pu satisfaire ma demande, l'utlisateur était pas connecté, etc) et il faudrait que je suis puisse traiter ceci (afficher une messageBox par exemple) mais pour ça je dois faire remonter cette erreur, et à vrai dire je ne suis pas sur que ta méthode fonctionne avec le BeginInvoke.... ????