首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

相关数据共享的方法

2012-09-08 
有关数据共享的方法我用TIDUDPServer在OnUDPRead中接收数据,把接收的数据都累加进UCHAR *ucData中,接收的

有关数据共享的方法
我用TIDUDPServer在OnUDPRead中接收数据,把接收的数据都累加进UCHAR *ucData中,接收的数据中有包头和包尾;我现在在线程中把包头和包尾去掉,然后画图,请问怎么在接收数据时不处理数据(就是分析包头和包尾)。就是怎样才能协调好接收和处理同一段数据;现在能同时操作这段内存,数据就乱了。谢谢!

[解决办法]
实际上就是两个线程间的同步问题,这种情况最方便的办法就是使用临界区

/ /初始化
InitializeCriticalSection(&cs);

// 接收线程
ThreadRecv::OnRead () {
EnterCriticalSection(&cs);
//Copy Data To Buffer
...
LeaveCriticalSection(&cs)
}
// 数据处理线程
ThreadProc::DataProcess() {
EnterCriticalSection(&cs);
//process data
...
LeaveCriticalSection(&cs)
}

热点排行