解决方案 »

  1.   

    多线程可能会同时访问同一个资源。需要一个线程锁,保护正在操作的数据,操作完成后再释放。
    // 初始化
    InitializeCriticalSection(FLock);           // 初始化重要区段
    // 使用方法
    EnterCriticalSection(FLock);                // 进入保护区 
    //.. 需要保护的数据
    LeaveCriticalSection(FLock);               // 释放
    // 释放资源
    DeleteCriticalSection(FLock);             
      

  2.   

    现在发现不只是多线程中使用用问题
    是在不同的form中使用也有问题
    我的Queue是在主form中声明的全局变量
    在另一个form中peek也会出现值不对
    为什么呢?
      

  3.   

    结贴,queue里存储的是指针,内容要new在堆里,pop之后手动删除。