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

相干数据共享的方法

2013-01-11 
有关数据共享的方法我用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)
}

热点排行