The Undo operation encountered a context

Signaler
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010
-
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010
-
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

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
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/
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010

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
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010

Il faut dire que j'enlève l'ecriture dans le log il ne fait plus aucune erreur ?

Myke
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
a voir les "..."

IAsyncResult le Async me fait dire qu'il faudrait peut etre attendre un statut OK
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010

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
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
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
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
2 février 2010

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