在Winforms应用程序中使用CefSharp版本55。我的应用程序有一个选项卡式界面(使用Telerik RadDock),其中每个浏览器实例在不同的选项卡中打开。随机关闭标签时,我会从CEF中获取内存访问冲突,导致应用程序崩溃。关于什么可能导致它的任何想法?它不会始终如一地发生。它似乎更有可能发生在非常旧的计算机上,如果这有帮助,但我们还没有能够将其缩小到特定的处理器或RAM配置。只是旧的PC比新的PC更容易产生错误。
发生这种情况时,错误日志中会生成三条相关消息:
错误1(级别:Error
,来源:.NET Runtime
):
Application: MyApplication
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: exception code c0000005, exception address 72433A3A
Stack:
(是的,Stack是空白的)
错误2(级别:Error
,来源:Application Error
):
Faulting application name: MyApplication, version: 3.0.1.1, time stamp: 0x5902247a
Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000
Exception code: 0xc0000005
错误3(级别:Information
,来源:Windows Error Reporting
):
Fault bucket 50, type 5
Event Name: BEX
Response: Not available
Cab Id: 0`
关闭标签时,我们没有做任何异常。没有特殊代码,只是内置选项卡关闭例程,在托管浏览器实例的用户控件的设计器中调用browser.Dispose()。
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing Then
Browser.Dispose()
If components IsNot Nothing Then
components.Dispose()
End If
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub