Je reçois un InvalidOperationException
avec le message Cross-thread operation not valid..
InvalidOperationException au sein BeginInvoke
Le _waitForm
est créé dans le constructeur de la principale forme. La méthode dans la capture d'écran est appelée à partir d'un autre thread. Je pense que c'est ce que BeginInvoke
résout. Je sais que j'accède au formulaire à partir d'un autre fil que celui créé. Des idées pour résoudre ce problème?
Voici le stacktrace:
at System.Windows.Forms.Control.get_Handle()
at System.Windows.Forms.Control.get_ContainsFocus()
at System.Windows.Forms.Control.SelectNextIfFocused()
at System.Windows.Forms.Control.SetVisibleCore(Boolean value)
at System.Windows.Forms.Form.SetVisibleCore(Boolean value)
at System.Windows.Forms.Control.Hide()
at YYYYYY.Boundary.ZzzzzForm.<HideWaitForm>b__c() in R:\Projects\XXXX\trunk\src\YYYYYY\Boundary\ZzzzzForm.cs:line 514
at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
désolé pour la capture d'écran, je voulais montrer toute l'image
Si vous voulez attendre la fin de l'appel, vous devez simplement appeler le 'Invoke()' synchrone. – SLaks
Quelle est la trace de la pile? – SLaks
Avez-vous deux threads d'interface utilisateur? – SLaks