The Undo operation encountered a context

cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010 - 28 janv. 2009 à 03:16
cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010 - 28 janv. 2009 à 16:41
The Undo operation encountered a context that is different from what was applied in the corresponding Set operation. The possible cause is that a context was Set on the thread and not reverted(undone) other trhread

Est-ce que quelqu'un a déjà vu cette erreur ? Si oui cela est dû à quoi ?

Myke

7 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 janv. 2009 à 07:23
le message semble clair...

il peut pas faire un 'annuler' parce que les conditions ne sont plus les mêmes que celles qu'il y a vait lors de l'opération à annuler.

par exemple, tu tente d'annuler dans un thread une opération efectuée dans un autre.

voir:
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/48b4a763-7387-46da-8fc2-3e885670f62c/
0
cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010
28 janv. 2009 à 15:35
Merci pour ta réponse.


 


Mais je n'y comprends plus rien un evenement est déclenché dans un call back cette évenement est récuper et ensuite j'écris un log.

Class #1


Private
Sub ReadCallBack(
ByVal ar
As IAsyncResult)


   RaiseEvent XXX(New LogSystem()

end sub

Class #2
private sub WriteLog(ByVal LogSystem)  Handles Object.XXX
   My.application.Log.DefaultFileLogWriterLine (...)
end sub

Est-ce que tu comprends quelque chose ?

Myke
0
cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010
28 janv. 2009 à 15:37
Il faut dire que j'enlève l'ecriture dans le log il ne fait plus aucune erreur ?

Myke
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 janv. 2009 à 15:38
a voir les "..."

IAsyncResult le Async me fait dire qu'il faudrait peut etre attendre un statut OK
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010
28 janv. 2009 à 16:16
les ... c'est seulement du texte. Cela serait dur de reproduire le code en entier ici.

Cette erreur m'embête car je ne sais pas ou chercher. J'execute pas à pas et cela fonctionne et à moment donné il me donne cette erreur sans me donner plus de détails ? J'ai mis des try catch un peu partout pour trouver ou était le problème mais il ne passe j'amais dans les catch.

J'aivais déjà lu le lien que tu m'as envoyé. CallBack est utilisé pour un socket que j'écoute en mode promiscuous. Les date de post du blog date de 2005 - 2006 et j'utilise le framework 3.5 maintenant. Je me disais que le problème était arrangé dans cette version !

La seule conclusion que je peux faire c'est que le "application.log.writeline" modifie le thread ? Quand pense tu ? ou pt le fait que log soit thread-safe ?

Myke
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 janv. 2009 à 16:20
j'imagine jusque que tu ne peux acceder au fichier de log que depuis un seul thread a la fois (logique)

j'ignore si c'est bien géré par .Net
0
cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010
28 janv. 2009 à 16:41
La class Log est supposé être ThreadSafe d'après le MSDN. J'ai réussi à arranger un bout de code pour que cela fonctionne. Dans ma class LOG je fait hérite de Windows.Forms.Form pour utiliser la méthode Invoke avant l'écriture du log et cela fonctionne bien. Par contre, je ne trouve pas logique d'utiliser ce moyen. Est-ce qu'il existe un équivalent pour invoke dans une class. Un moyen de synchroniser les threads sans la méthode invoke ?

Myke
0
Rejoignez-nous