FBrowserCEF3Lib浏览器开发技术交流网址

 找回密码
 立即注册
查看: 2865|回复: 0

【FBroSharp】C#版本4.6.12.1后事件类传递参考源码

[复制链接]

签到天数: 467 天

[LV.9]以坛为家II

79

主题

416

回帖

79万

积分

管理员

皇冠皇冠皇冠皇冠太阳太阳

积分
798316

优秀会员永久VIP会员活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老荣耀会员精华大师大富翁

发表于 2024-11-6 20:50:17 | 显示全部楼层 |阅读模式
C#源码分享
开发平台: C#
使用框架: FBrowserCEF3
代码类型: 源码
界面截图:

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
事件类传递,新版后类接口参数只在事件作用域内有效,如要保存以便后续操作,参考如下代码wss直接使用new引用websocket
注意:这里如果不是用这种方式,如果才用wss=websocket的方式,实际是弱拷贝,当websocket离开作用域的时候(也就是下面类方法执行完毕的时候),wss和websocket都会被释放IsValid将变为假而无效
[C#] 查看源码 复制代码
public override void VIP_OnWebSocketClientConnect(IFBroSharpBrowser browser, IFBroSharpFrame frame, 
            IFBroSharpDOMWssClient websocket, ref string returl, ref string protocols)
{
    wss = new FBroSharpDOMWssClient(websocket);
}


其实非必要不建议如此操作,采用如此操作,在不用的时候最好将wss设置为null,以便GC管理器自动回收,如下:
[C#] 查看源码 复制代码
public override void VIP_OnWebSocketClientClose(IFBroSharpBrowser browser, IFBroSharpFrame frame, IFBroSharpDOMWssClient websocket)
{
    wss = null;
}


完整示例参考在线gitee库:https://gitee.com/FloatToPoint/fbro-sharp-test.git

ps:采用该模式的主要原因是降低内存占用和加快C++传递的类变量释放,避免无谓的占用,无需等待GC回收即可快速回收;




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们 在线手册 视频教程 赞助支持 CEF官网 易语言官网 火山开发官网
拒绝任何人以任何形式在本网站发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表本网站立场!

网址帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!

Archiver| 手机版| 小黑屋| 联系QQ:283987887 劰载中...

Powered by Discuz! X5.0 GMT+8, 2026-9-17 07:32 , Processed in 0.020616 second(s), 14 queries , Redis On.

 川公网安备51090302000262 蜀ICP备2023034329号
快速回复 返回顶部 返回列表