MFC下集成CEF3單進程和多進程

Cef3單進程多進程設置其實就是

CefSettings settings;
settings.single_process = true;			//採用單進程模式
settings.single_process = false;		//採用多進程模式

cef3本身就是多進程的,也支持單進程模式,但是在單進程模式中,會出現一些問題,多進程模式下,如果配置不正常,程序可能會出現不加載網頁,或者出現多個對話框的問題。

在之前的文章中介紹的在MFC中集成CEF3打開網頁就是採用的單進程模式實現的,但最近項目上遇到一個問題,就是網頁是一個列表,翻頁的時候,每一頁都有圖片,在圖片還沒有加載完的時候,調用下一頁,程序就崩潰了,報錯提示是libcef.dll異常,完全就沒有頭緒的問題。對比了cef3自帶的simple代碼,找到配置上的不一樣,也沒有解決崩潰問題,最後嘗試使用多進程模式。

其實實現多進程模式,只需要在原來單進程模式上增加一點代碼即可。

	void* sandbox_info = NULL;
	CefRefPtr<SimpleApp> app = (new SimpleApp);
	CefMainArgs main_args = CefMainArgs(this->m_hInstance);
	int exit_code = CefExecuteProcess(main_args, app.get(), sandbox_info);
	if (exit_code >= 0) {
		return exit_code;
	}

這句話的作用就是啓動多進程,如果啓動進程失敗,整個工程就直接退出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章