我现在有一个链表如下:
typedef struct datalink
{
    void* data;
    int   size;
    struct datalink* next;
}datalink;
现在我有两个进程都要对这个链表进行操作,但同时又只能一个进程对其操作,如
读进程在读链表中每个节点数据时写进程不能往上加节点,而写进程在往链表里加入节点的时候读进程不能读出数据.
想问怎么实现,我想用CreateEvent实现,但不知道怎么用
希望能人有教教我,谢谢了先.

解决方案 »

  1.   

    www.infoxa.com 下WIN32多线程程序设计看
      

  2.   

    用一个全局互斥量就可以了
    HANDLE hMutex=CreateMutex(NULL, FALSE, "");我估计你是要在两个线程(而非进程)里访问这个链表,不然你还需要内存映射文件方面的知识
    在两个线程里都加上如下代码:
    if (WAIT_OBJECT_0 == WaitForSingleObject(hMutex, INFINITE))
    {
        //处理读或写的操作
    }
    ReleaseMutex(hMutex);
      

  3.   

    HANDLE hMutex=CreateMutex(NULL, FALSE, "");这里的第三个参数要怎么写呢??