none
(Ayuda) Resolver este error RRS feed

  • Pregunta

  • Hola, tengo esto declarado:

    Dim FilePath As String = Environment.SystemDirectory & "\drivers\etc\hosts"


    Antes no me salía ningún error y ahora sí y se me cierra mi app. El mensaje es el siguiente, 

    System.Threading.ThreadStateException: 'No se puede crear una instancia del control ActiveX '8856f961-340a-11d0-a96b-00c04fd705a2' porque el subproceso actual no está en un contenedor uniproceso.'

    ¿Cómo puedo resolverlo?

    jueves, 23 de enero de 2020 11:51

Respuestas

  • Estooo... Esa declaracion no tiene nada que ver con el error que te esta saliendo. Ese error se refiere a que no tienes puesto el atributo <STAThread> en el Sub Main (STA="Single Threaded Apartment"="Contenedor Uniproceso"). O, si lo tienes puesto, entonces tienes en tu programa algo de codigo multi-hilo que esta llamando a algun componente que solo tiene permitido ejecutarse en un unico hilo (por ejemplo, System.Drawing en un Windows Form, o algun componente COM o ActiveX). En VB.NET a partir de la 2.0 (a diferencia de C#) single-threaded es el valor por defecto, por lo que deberia funcionar incluso sin el atributo en el Sub Main, asi que la segunda explicacion (uso ilegal de multihilo) es mas probable. No se puede saber sin examinar los hilos que esta lanzando tu programa.
    • Propuesto como respuesta Pablo Rubio jueves, 23 de enero de 2020 15:47
    • Marcado como respuesta Symantecc lunes, 27 de enero de 2020 8:04
    jueves, 23 de enero de 2020 13:31

Todas las respuestas

  • Estooo... Esa declaracion no tiene nada que ver con el error que te esta saliendo. Ese error se refiere a que no tienes puesto el atributo <STAThread> en el Sub Main (STA="Single Threaded Apartment"="Contenedor Uniproceso"). O, si lo tienes puesto, entonces tienes en tu programa algo de codigo multi-hilo que esta llamando a algun componente que solo tiene permitido ejecutarse en un unico hilo (por ejemplo, System.Drawing en un Windows Form, o algun componente COM o ActiveX). En VB.NET a partir de la 2.0 (a diferencia de C#) single-threaded es el valor por defecto, por lo que deberia funcionar incluso sin el atributo en el Sub Main, asi que la segunda explicacion (uso ilegal de multihilo) es mas probable. No se puede saber sin examinar los hilos que esta lanzando tu programa.
    • Propuesto como respuesta Pablo Rubio jueves, 23 de enero de 2020 15:47
    • Marcado como respuesta Symantecc lunes, 27 de enero de 2020 8:04
    jueves, 23 de enero de 2020 13:31
  • Gracias! se debía a un hilo
    lunes, 27 de enero de 2020 8:04