一个关于STL Vector的 本人用一条线程向一个Vector实例里压不断压数据并在另外一个线程里面读取出来并写入文件。但当输入数据一增大,使用begin()获取到的元素有时候会变成一些莫名其妙的值导致程序运行出错(不是为NULL,其一般都是指向一个很大的内存地址)。请问这是为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用临界区CRITICAL_SECTION在插入和读取的时候加锁 stl不是线程安全的,要自己实现不同线程间对stl对象访问的同步 增加时就直接通过push_back函数来增加。读取就用begin(),之后就使用V_Data.erase(V_Data.begin())来将已读取的元素删除。 LS的说的很对,多线程访问同一内存得有同步操作。最简单的用CSingleLock就行 如果要提高效率,就不要用STL。自己做了链表,尽量通过InterLocked指令避免线程冲突。 关于使用TinyXML读写XML文件的问题 关于 WSASend 问题 MFC拖放文件 使用ODBC访问远程SQL的问题 请问一个Win32的简单问题,请各位看看,谢谢!!! dll中怎么用不了BitBlt?? Spin控件如何动态改变Dialog中其他控件,如EDIT的状态 在接口中如何传递包括STL类的结构??在线等!--这个问题困扰我几天了! CWinapp是主线程包含UI的。再创建子UI线程CWinThread,启用消息循环,子线程死机,主线程也卡死了!?? 为什么我的PE Explorer不能用? 求如何编写自己的OLE对象的资料??????? vc如何使用pdb调试软件和代码阿
增加时就直接通过push_back函数来增加。读取就用begin(),之后就使用V_Data.erase(V_Data.begin())来将已读取的元素删除。
最简单的用CSingleLock就行