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?