我现在有一个链表如下:
typedef struct datalink
{
void* data;
int size;
struct datalink* next;
}datalink;
现在我有两个进程都要对这个链表进行操作,但同时又只能一个进程对其操作,如
读进程在读链表中每个节点数据时写进程不能往上加节点,而写进程在往链表里加入节点的时候读进程不能读出数据.
想问怎么实现,我想用CreateEvent实现,但不知道怎么用
希望能人有教教我,谢谢了先.
typedef struct datalink
{
void* data;
int size;
struct datalink* next;
}datalink;
现在我有两个进程都要对这个链表进行操作,但同时又只能一个进程对其操作,如
读进程在读链表中每个节点数据时写进程不能往上加节点,而写进程在往链表里加入节点的时候读进程不能读出数据.
想问怎么实现,我想用CreateEvent实现,但不知道怎么用
希望能人有教教我,谢谢了先.
HANDLE hMutex=CreateMutex(NULL, FALSE, "");我估计你是要在两个线程(而非进程)里访问这个链表,不然你还需要内存映射文件方面的知识
在两个线程里都加上如下代码:
if (WAIT_OBJECT_0 == WaitForSingleObject(hMutex, INFINITE))
{
//处理读或写的操作
}
ReleaseMutex(hMutex);