【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回收即可快速回收;
页:
[1]