父表单启动一个子表单,通过CEFSharp嵌入Chromium Embedded Framework。用户可以关闭子表单。用户可以重新启动子表单。当发生这种情况时,应用程序终止。
if (debugForm == null || debugForm.IsDisposed)
{
if (debugForm != null && debugForm.IsDisposed)
{
debugForm = null;
}
debugForm = new CEFdebugger();
....
}
当表单运行一次后,关闭并重新启动该行
debugForm = new CEFdebugger();
导致应用程序终止。在输出窗口中我有
... has exited with code 1073741855 (0x4000001f)
根据this thread,这表明我应该启用调试非托管代码,但这似乎没有帮助。 在CEFdebugger的FormClosing事件中,我添加了
private void CEFdebugger_FormClosing(object sender, FormClosingEventArgs e)
{
Cef.Shutdown();
this.Controls.Remove(browser);
browser = null;
}
这没有帮助。应用程序刚终止。
答案 0 :(得分:0)
问题是由声明
引起的Cef.Shutdown();
在CEFdebugger_FormClosing中。通过注释并在表单构造函数中测试Cef.IsInitialized,问题得到了解决。