Problem z WebBrowser

0

Pisze komunikator (typu GaduGadu), w którym okno rozmowy oparte jest na kontrolce WebBrowser. Cała sprawa wygląda następująco. Loguje sie do serwera i odpala mi się okno z kontaktami, w osobnym wątku uruchamiam metodę, która nasłuchuje wiadomości od serwera:

new Thread(new ThreadStart(listen)).Start();

Moim zamiarem jest, aby przy przyjściu wiadomości od innego użytkownika (rozpoczynającą się od '#start') wyskoczyło mi okienko z rozmową w osobnym wątku:

private void listen()
        {
            string message;
            BinaryReader binReader = new BinaryReader(netStream);

            try
            {
                while (!(message = binReader.ReadString()).Equals(""))
                {

                    if (message.StartsWith("#start"))
                    {
                        ThreadStart threadStart = new ThreadStart(new OknoRozmowy().Show);
                        Thread thread = new Thread(threadStart);
                        thread.Start();
                    }

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());

            }
        }

Po przyjściu wiadomości i próbie wyświetlenia okna rozmowy otrzymuję bład:

ActiveX control '8856f961-340a-11d0-a96b-00c04fd705a2' cannot be instantiated because the current thread is not in a single-threaded apartment.

Jest to związane właśnie z kontolką WebBrowser. Czy ma ktoś może jakieś pomysły poradzenia sobie z tym?

0

dodanie
thread.SetApartmentState(ApartmentState.STA); przed uruchomieniem wątkuthread.Start(); pomaga?

1 użytkowników online, w tym zalogowanych: 0, gości: 1