CTP Release() 的注意问题
测试时发现CThostFtdcMdSpi有个比较严重的问题,就是使用Release()退出清理对象时 会出现死机,并且频率很高,怎样解决? 答:请参考以下代码的释放顺序。
template <class TUserApi>
void CUserApiEnv<TUserApi>::UnInitialUserApi()
{
// 释放UserApi
if (m_pUserApi)
{
m_pUserApi->RegisterSpi(NULL);
m_pUserApi->Release();
m_pUserApi = NULL;
}
// 释放UserSpi实例
if (m_pUserSpiImpl)
{
delete m_pUserSpiImpl;
m_pUserSpiImpl = NULL;
}
}
实际上还有一个重要问题必须了解:
你不能在Spi的响应函数中调用这个函数,否则会crash
例如,你在OnFrontDisconnected中调用这个函数,或者其他spi,你会很苦恼。
一个好的办法是,新建一个Thread,在Thread中调用,这样不会有任何问题。
CTP Release() 的注意问题的更多相关文章
- 分享我对 ASP.NET vNext 的一些感受,也许多年回过头看 So Easy!
写在前面 阅读目录: Visual Studio "14" CTP 关于 ASP.NET vNext ASP.NET vNext 实践 后记 ASP.NET vNext 发布已经过 ...
- C#调用C++导出类(转)
由于使用别人的Dll,导出的是一个实体类,在C#里封送很难,百度下,有个朋友回复一篇英文的,虽然不一定使用,但可以作为一个知识点,现把原文贴下: c#调用C++写的dll导出类,包含继承,重载等详细介 ...
- visual studio 2017 创建 android 本地共享库(.so) 并从 C# android 项目中调用
Developing Xamarin Android Native Applications ★★★★★ ★★★★ ★★★ ★★ ★ February 23, 2015 by Ankit Asthan ...
- 升级 Visual Studio 2015 CTP 5 的坑、坑、坑
前两天,微软发布了 Visual Studio 2015 CTP 5,全称为 Visual Studio 2015 Community Technology Preview 5,意为社区技术预览版,之 ...
- 在VS2015 RC打开CTP中创建的工程
VS2015终于出了RC了!小伙伴们快来安装试用吧,地址在这里,还有新的Windows 10开发工具哦,要不然是开发不了Universal Windows App的,安装前记得卸载CTP版本. 新的R ...
- Atititi 版本管理 rc final rtm ga release 软件的生命周期中一般分4个版本
Atititi 版本管理 rc final rtm ga release 软件的生命周期中一般分4个版本 RC=Release Candidate,含义是"发布候选版",它不是最终 ...
- 微软Visual Studio "14" CTP 2 公布
对于在微软阵营下进行工作的团队来说,拥有最新版本号的Visual Studio是提高效率最佳的选择,没有之中的一个. 在本文中,我们就上个月公布的Visual Studio "14&q ...
- 微软Visual Studio "14" CTP 2 发布
微软Visual Studio "14" CTP 2 发布 对于在微软阵营下进行工作的团队来说,拥有最新版本的Visual Studio是提高效率最佳的选择,没有之一. 在本文中, ...
- Visual Studio “14” CTP 3 Released
http://blogs.msdn.com/b/visualstudio/archive/2014/08/18/visual-studio-14-ctp-3-released.aspx Today w ...
随机推荐
- quick-cocos2d-x教程3:程序框架内文件夹分析之docs文件夹
如今我们分析框架中的docs文件夹.看看这个文档文件夹中,究竟放了那些对我们实用的东西. docs文件夹分析 UPGRADE_TO_2_2_3.md 就是讲升级的变化.详细说明:quick-cocos ...
- 3D数学读书笔记——向量运算及在c++上的实现
本系列文章由birdlove1987编写.转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24782661 ...
- Hadoop开发
HDFS HDFS提供一套Java API来操作HDFS,包括文件的建立.修改.删除.权限管理等,下面对几个常用的API进行介绍,详细的API接口请参见API文档,可以在${HADOOP_HOME}/ ...
- linux-unzip命令【转载】
前辈 总结的很好http://www.cnblogs.com/lucyjiayou/archive/2011/12/25/2301046.html 功能说明:压缩文件. 语 法:zip [-AcdDf ...
- 青岛理工交流赛 H题 素数间隙
13110581088注销 素数间隙 Time Limit: 1000MS Memory limit: 262144K 题目描述 Neko猫是一个很喜欢玩数字游戏的会说话的肥猫,经常会想到很多很好玩的 ...
- IntelliJ IDEA 2016.1注册码
IntelliJ IDEA 2016.1刚发布不久,破解注册的方法是在太少,15的注册URL也不管用,真是很头疼... 幸好发现一枚注册码,感谢sanshi的奉献精神!!! 原文链接: http ...
- Jquery 获取所有对象的第一个子元素
转自:http://blog.sina.com.cn/s/blog_5fdbd0410100pmnn.html <ul> <li>John</li> <l ...
- typeof详解
typeof operator 返回了表示对象类型的字符串 下表列出了typeof可能的返回值. Type Result Undefined "undefined" Null &q ...
- Java 并发 —— volatile 关键字
volatile 修饰变量等于向编译器传达如下两层含义: 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的. 禁止进行指令重排序. volat ...
- BZOJ_1004_[HNOI2008]Cards_burnside+DP
BZOJ_1004_[HNOI2008]Cards_burnside+DP Description 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问 ...