一个MFC是应用程序,有两条SOCKET通道用于接收两台机器发送的是数据。
SOCKET 收到的数据后都会去修改同一张表,做什么样的修改是根据表的中其他字段的值(表是在内存里的)。
  我现在的疑问是当SOCKET1接收到数据后在修改表的时候,SOCKET2也接收到了数据,这时是要等SOCKET1的相应操作执行完,还是SOCKET2的处理函数也开始执行了。
  这样的情况能不能由我的程序来控制执行的方式?谢谢

解决方案 »

  1.   

    如果是用一个变量来操作的话必须要保证同一时间内只有一次调用,这个可以用临界变量
    CCriticalSection m_hCriticalSection;
    _RecordsetPtr m_pRecordset;线程一中:m_hCriticalSection.Lock();
    m_pRecordset.GetCollect(...);
    m_hCriticalSection.Unlock();线程二中:
    m_hCriticalSection.Lock();
    m_pRecordset.PutCollect(...);
    m_hCriticalSection.Unlock();
      

  2.   

    我是想知道我这两个SOCKET也是线程吗?
       会分时交叉运行吗?