Estoy creando un dll C#, que otros desarrolladores usarán en WinForms. Por alguna razón, deseo detectar si los métodos de esta biblioteca se llaman desde el hilo principal (GUI) y advertir al desarrollador que ha hecho algo así (es decir, en el archivo de registro). ¿Hay alguna forma razonable de detectar el método de llamada desde el hilo principal? Recuerde que no tengo acceso a la aplicación WinForm.Detectando ejecutarse en el hilo principal en la biblioteca C#
7
A
Respuesta
17
Una solución fácil en este caso es declarar un control estático en el conjunto de la biblioteca que se crea en la hebra de la IU principal. Si desea detectar si la biblioteca se llama desde el hilo principal, a continuación, utilizar la siguiente
if (MyLibraryControl.InvokeRequired)
//do your thing here
2
La opción más simple (si tiene una forma/práctico control) es comprobar InvokeRequired.
En caso de que no sea así, puede intentar usar SynchronizationContext
para simular una publicación o enviar, ¿qué hilo está pasando? Al llamar a Enviar o Enviar se cambiará al subproceso de interfaz de usuario.
Cuestiones relacionadas
- 1. Detectando cuando está dentro/fuera del hilo principal en Xamarin.iOS
- 2. detectando excepciones de otro hilo
- 3. Capturar el hilo principal SynchronizationContext o Dispatcher de una biblioteca
- 4. C# borrado del hilo principal
- 5. Excepción en el hilo "principal" java.lang.NoClassDefFoundError
- 6. NSOperation y NSNotificationCenter en el hilo principal
- 7. Código de ejecución en el hilo principal de otro hilo
- 8. ¿Qué necesita estar en el hilo principal?
- 9. Método de ejecución en el hilo principal de otro hilo
- 10. llamando al hilo principal desde el hilo Runnable en java
- 11. ¿Cómo bloquear el hilo principal hasta que todos los otros hilos terminen de ejecutarse?
- 12. NSTask bloqueando el hilo principal
- 13. ¿Cómo atrapar una excepción en el hilo principal si la excepción ocurre en el hilo secundario?
- 14. Compruebe si el hilo actual es el hilo principal
- 15. NSURLConnection bloquea el hilo principal?
- 16. AudioServicesPlaySystemSound y el hilo principal
- 17. Detectando EOF en C
- 18. Cómo saber si un hilo es el hilo principal en C#
- 19. Forzar la ejecución del código en el hilo principal
- 20. Formas de evitar la excepción en el hilo "principal" clojure.lang.ArityException?
- 21. Cómo pasar una excepción explícitamente al hilo principal en C#
- 22. NSOperation: addSubview en el hilo principal y lentitud
- 23. iPhone: ¿Cómo determinar si el hilo es el hilo principal?
- 24. C#: cómo obtener la longitud del hilo en el hilo []
- 25. Excepción en hilo java.lang.UnsatisfiedLinkError "principal": No se pudo cargar la biblioteca SWT
- 26. Detección de hilo GUI en la biblioteca Qt
- 27. ¿Debería invocarse URLForUbiquityContainerIdentifier en un hilo fuera del hilo principal?
- 28. ventana de Creación en otro hilo (no hilo principal)
- 29. Detectando el estado de la red (conectado - desconectado) en C#
- 30. Excepción en el hilo "principal" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException
Esto debe marcarse como la respuesta correcta para la pregunta. –