Ayuda error al usar folderbrowser Por Favor

21/08/2007 - 20:38 por edcha | Informe spam
El asunto es que ya cree un formulario MDI con diferentes botones y
queria buscar una carpeta para eso en uno de los botones puse el
siguiente codigo:
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.ShowDialog();

pero cuando se va a ejecutar el fbd.ShowDialog();
genera el siguiente error y no continua:
Se generó la excepción
System.Threading.ThreadStateException en el programa:
Current thread must be set to single thread apartment
(STA) mode before OLE calls can be made.
Ensure that your Main function has STAThreadAttribute
marked on it.
This exception is only raised if a debugger is attached
to the process.0
podria alguien decirme cual es el problema y como solucionarlo.

Muchas gracias de antemano

Preguntas similare

Leer las respuestas

#1 Juan Carlos Paramá
22/08/2007 - 09:55 | Informe spam
Hola,

Como dice el mensaje te falta el atributo [STAThread] en la función Main
de tu programa. Las llamadas a través de OLE (y FolderBrowserDialog no es
más que un encapsulamiento de determinadas funciones OLE) tienen que
realizarse en un Thread marcado como Single Thread Apartament.

Tu función Main debería ser algo como:

[STAThread]
public static void Main() {



}


Saludos,

Juan Carlos Paramá

"edcha" escribió en el mensaje de noticias
news:
El asunto es que ya cree un formulario MDI con diferentes botones y
queria buscar una carpeta para eso en uno de los botones puse el
siguiente codigo:
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.ShowDialog();

pero cuando se va a ejecutar el fbd.ShowDialog();
genera el siguiente error y no continua:
Se generó la excepción
System.Threading.ThreadStateException en el programa:
Current thread must be set to single thread apartment
(STA) mode before OLE calls can be made.
Ensure that your Main function has STAThreadAttribute
marked on it.
This exception is only raised if a debugger is attached
to the process.0
podria alguien decirme cual es el problema y como solucionarlo.

Muchas gracias de antemano
Respuesta Responder a este mensaje
#2 edcha
22/08/2007 - 19:50 | Informe spam
Muchas gracias por la ayuda y la explicacion ya que estoy aprendiendo
y todavia no entiendo bien lo del thread
¿conoces alguna ayuda practica sobre lo del thread?

Gracias



On 22 ago, 01:55, Juan Carlos Paramá
wrote:
Hola,

Como dice el mensaje te falta el atributo [STAThread] en la función Main
de tu programa. Las llamadas a través de OLE (y FolderBrowserDialog no es
más que un encapsulamiento de determinadas funciones OLE) tienen que
realizarse en un Thread marcado como Single Thread Apartament.

Tu función Main debería ser algo como:

[STAThread]
public static void Main() {



}

Saludos,

Juan Carlos Paramá

"edcha" escribió en el mensaje de noticiasnews:
El asunto es que ya cree un formulario MDI con diferentes botones y
queria buscar una carpeta para eso en uno de los botones puse el
siguiente codigo:
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.ShowDialog();

pero cuando se va a ejecutar el fbd.ShowDialog();
genera el siguiente error y no continua:
Se generó la excepción
System.Threading.ThreadStateException en el programa:
Current thread must be set to single thread apartment
(STA) mode before OLE calls can be made.
Ensure that your Main function has STAThreadAttribute
marked on it.
This exception is only raised if a debugger is attached
to the process.0
podria alguien decirme cual es el problema y como solucionarlo.

Muchas gracias de antemano
Respuesta Responder a este mensaje
#3 Cholo Lennon
23/08/2007 - 20:34 | Informe spam
Esto es más que threads, es en realidad sobre el modelo de threads usados por
COM. De aquí puedes partir:

Threads (hilos, muy mal traducidos al español como 'subprocesos')
http://msdn2.microsoft.com/es-es/library/6kac2kdh(VS.80).aspx
http://msdn2.microsoft.com/es-es/library/e1dx6b2h(VS.80).aspx

Modelo de threads en COM / .NET
http://msdn.microsoft.com/library/s...eading.asp


Salu2

Cholo Lennon
Bs.As.
ARG


"edcha" wrote in message news:
Muchas gracias por la ayuda y la explicacion ya que estoy aprendiendo
y todavia no entiendo bien lo del thread
¿conoces alguna ayuda practica sobre lo del thread?

Gracias



On 22 ago, 01:55, Juan Carlos Paramá
wrote:
Hola,

Como dice el mensaje te falta el atributo [STAThread] en la función Main
de tu programa. Las llamadas a través de OLE (y FolderBrowserDialog no es
más que un encapsulamiento de determinadas funciones OLE) tienen que
realizarse en un Thread marcado como Single Thread Apartament.

Tu función Main debería ser algo como:

[STAThread]
public static void Main() {



}

Saludos,

Juan Carlos Paramá

"edcha" escribió en el mensaje de noticiasnews:
El asunto es que ya cree un formulario MDI con diferentes botones y
queria buscar una carpeta para eso en uno de los botones puse el
siguiente codigo:
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.ShowDialog();

pero cuando se va a ejecutar el fbd.ShowDialog();
genera el siguiente error y no continua:
Se generó la excepción
System.Threading.ThreadStateException en el programa:
Current thread must be set to single thread apartment
(STA) mode before OLE calls can be made.
Ensure that your Main function has STAThreadAttribute
marked on it.
This exception is only raised if a debugger is attached
to the process.0
podria alguien decirme cual es el problema y como solucionarlo.

Muchas gracias de antemano
Respuesta Responder a este mensaje
#4 edcha
24/08/2007 - 00:49 | Informe spam
Muchas gracias por la ayuda a ambos
Respuesta Responder a este mensaje
#5 Ronald Ramirez Moran
03/09/2007 - 21:35 | Informe spam
Al metodo Main del programa principal tienes que agregarle el atributo
STAThreadAttribute. Asi:

class program{
[STAThreadAttribute]
public static void Main(object[] args){
}
}

Saludos,


Ronald Ramirez Moran (aka DlanorOk)
Personal Space: http://dlanorok.spaces.live.com
Blog: http://ecuador.latindevelopers.net/blogs/dlanorok

"edcha" wrote in message
news:
El asunto es que ya cree un formulario MDI con diferentes botones y
queria buscar una carpeta para eso en uno de los botones puse el
siguiente codigo:
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.ShowDialog();

pero cuando se va a ejecutar el fbd.ShowDialog();
genera el siguiente error y no continua:
Se generó la excepción
System.Threading.ThreadStateException en el programa:
Current thread must be set to single thread apartment
(STA) mode before OLE calls can be made.
Ensure that your Main function has STAThreadAttribute
marked on it.
This exception is only raised if a debugger is attached
to the process.0
podria alguien decirme cual es el problema y como solucionarlo.

Muchas gracias de antemano
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida