关于网友提出的“ 多个进程之间共享链表问题”问题疑问,本网通过在网上对“ 多个进程之间共享链表问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 多个进程之间共享链表问题
描述: 链表用来记录一些指定进程和进程里面线程处理的文件名和临时文件名的(需要在不同进程中访问):
//记录线程操作的文件名
typedef struct THREAD_FILE
{
DWORD dwThreadId; //记录线程ID
LPTHREAD_FILE next;
TCHAR psFileName[MAX_PATH+1]; //记录线程操作的文件名
TCHAR psTempFileName[MAX_PATH+1]; //记录线程操作的临时文件名
}THREAD_FILE,*LPTHREAD_FILE;
//记录进程ID及所属线程列表
typedef struct PROCESS_FILE
{
LPTHREAD_FILElpThreadFile; //线程信息链表头指针
DWORD dwProcessId; //记录进程ID
LPPROCESS_FILEnext;
int ThreadCount; //进程下线程数目
}PROCESS_FILE,*LPPROCESS_FILE;
之前本来用Dll的共享数据段用数组来模拟的,不过模拟这个的话实在太复杂了,想用链表来做。
上网看了下资料,想了几个办法,不过好像也不太行的通:
1.不断做FileMapping(申请失败?效率?访问冲突?)
2.在主程序中做链表,然后在不同进程中用COPY_DATA消息来交互处理?
3.重载new或者alloc,在Dll共享数据段中动态申请内存(不知道方法)
我想问一下上面的方法能不能行得通,要么还有没有什么更好的方案 谢谢!
以上介绍了“ 多个进程之间共享链表问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3393429.html