线程a和线程b共享一个内存dc,先线程b读一条数据到dc,然后告诉线程a说你可以读了,线程bsuspend。
然后线程a便读取数据,读完后要使线程b继续运行。不知这个怎么实现???????

解决方案 »

  1.   


    1、定义两个事件,生产区:ev_provider,消费区:ev_consumer
    HANDLE ev_provider = CreateEvent(NULL,TRUE,TRUE,NULL); 初始化状态为Signed
    HANDLE ev_consumer = CreateEvent(NULL,TRUE,FALSE,NULL);初始化状态为noSigned2、线程B是生产者进程:
    WaitForSingleObject(ev_provider, INFINITE); 等生产区可用
    ...执行代码
    SetEvent(ev_consumer); 让消费区可用3、线程A是消费者进程
    WaitForSingleObject(ev_consumer, INFINITE); 等消费区可用
    ResetEvent(ev_provider);  让生产区不可用
    ...执行代码
    ResetEvent(ev_consumer); 让消费区不可用
    SetEvent(ev_provider); 让生产区可用