CWebBrowser2 threadsafe??

Pagina: 1
Acties:

  • KnoppenSpook
  • Registratie: Augustus 2000
  • Laatst online: 04-09-2023
Ik heb twee progjes (in VC++ met MFC), allebei met de ActiveX control "Microsoft WebBrowser".
Het ene progje is single threaded, daarin gaat alles goed.
Het andere progje is multithreaded, daar stuur vanuit een thread een message (SendMessage) naar het Dialoog venster, om daar de HTML data in een file te stoppen (deze HTML data staat in een database) en de webbrowser.navigate ("file") te doen.

Als ik dan de innertext uit de body wil halen (dus alleen de text niet de HTML code) dan gaat het bij de 4e keer fout en geeft ie een fout "R6025" iets met "pure virtual function call" :?
Bij de single threaded gaat alles wel goed (met de zelfde code)!!

Please HELP

/me weet geen leuke quote voor in zijn signature


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Windows message queues zijn threadgebonden. Als je GUI/GDI componenten multithreaded wilt regelen zul je moeten zorgen dat ze via user-mode APC's hun data posten/schrijven binnen de correcte thread, of via events/mutexes/semaphores/waitable-timers/critical-sections regelen dat de originele thread de data goed wegknalt.

Sendmessage is multithreaded sowieso levensgevaarlijk, omdat de WndProc van de target binnen dezelfde thread context wordt aangeroepen. Bij Postmessage heb je dit probleem niet en zit hij wel binnen de correcte context.

Overigens klinkt je fout naar een ander probleem, heb je RTTI wel aangevinkt in de project settings?

Professionele website nodig?