admin 发表于 2024-11-6 20:50:17

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

事件类传递,新版后类接口参数只在事件作用域内有效,如要保存以便后续操作,参考如下代码wss直接使用new引用websocket;
注意:这里如果不是用这种方式,如果才用wss=websocket的方式,实际是弱拷贝,当websocket离开作用域的时候(也就是下面类方法执行完毕的时候),wss和websocket都会被释放IsValid将变为假而无效;

public override void VIP_OnWebSocketClientConnect(IFBroSharpBrowser browser, IFBroSharpFrame frame,
            IFBroSharpDOMWssClient websocket, ref string returl, ref string protocols)
{
    wss = new FBroSharpDOMWssClient(websocket);
}


其实非必要不建议如此操作,采用如此操作,在不用的时候最好将wss设置为null,以便GC管理器自动回收,如下:
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回收即可快速回收;




Morgan85 发表于 3 天前

路过,看看撒情况

Lily3 发表于 3 天前

膜拜大神

晚安小熊 发表于 3 天前

感谢分享

门没锁别进 发表于 3 天前

感谢分享

冬雪初晴 发表于 4 天前

膜拜大神

Madison39 发表于 4 天前

来看看,支持下

星河之舟 发表于 2026-10-23 15:57:02

{:6_341:}{:6_341:}{:6_341:}{:6_341:}{:6_341:}{:6_341:}{:6_341:}

DriftAway 发表于 2026-10-22 22:16:35

看看怎么个事

Brooklyn73 发表于 2026-10-21 03:59:43

必须支持一下
页: [1]
查看完整版本: 【FBroSharp】C#版本4.6.12.1后事件类传递参考源码