Hey CEF forum folks,
I'm trying to find some definitive answers for questions related to the various methods of using CEF inside an external framework. For the record, I have CEF up and running and am experiencing some significant performance issues when my application runs along-side other applications. I'm speculating it's due to my sub-optimal code handling the CEF message loop.
With that in mind, I have these questions:
1. Using CefRunMessageLoop() is out of the question if an external framework runs the OS message loop as this call is blocking and expects to manage both the windows and cef messages, correct?
2. Activating and using multi_threaded_message_loop is preferable to building/using code relying on CefDoMessageLoopWork(), if it's an option, which it is on Windows/Linux, correct?
3. Re. multi_threaded_message_loop, the CEF WIKI - (https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage#markdown-header-message-loop-integration) denotes "You will need to provide your own mechanism for communicating with the main application thread" and to look at an example in cefclient_win.cpp. Looking at cefclient_win.cpp I noticed the MainMessageLoopMultithreadedWin object appears to be related to using multi_threaded_message_loop.
The MainMessageLoopMultithreadedWin object looks to be blocking, so I'm thinking it's possible to instantiate it in a separate thread, as its constructor checks which thread it happens to be running in. What eludes me is the additional work required to 'communicate with the main application thread' relating to the MainMessageLoopMultithreadedWin object. Is there any examples of this object being instantiated in its own thread?
Or perhaps I'm misunderstanding something, which is also quite possible.
Thanks in advance,
Gazoo