推荐一个线程进程(内部)通信框架--ThreadMessaging.NET
说来都郁闷,这个框架是一个老外(好像是德国人)在2004年写的,之后就再写没更新过,也许他
认为已经没什么再做下去的余地了或者是别的什么原因。反正这些年就没啥动静了。但笔者通过浏览
它的源码,发现还是有许多值得学习的,特别是想在多线程,多进程开发领域深入研究的朋友,相信
会有一些借鉴和参考价值。
因为之前曾用过它里面的“内存映射”文件部分(源码包中的MemoryMapping文件夹下),来进
行asp.net 下多 WEB园(多进程)同步的问题。但因为要序列化的数据表记录太多,造成效率过低
而放弃了这个方案。
当然这个框架中还有一些内容是来自codeproject上的一些文章中所开发并使用的代码,如:
ProcessSemaphore.cs(进程信号量,采用window api调用)就是采用了如下链接中所开发的代码:
http://www.codeproject.com/csharp/sharetheresource.asp
另外一些用于同步线程的类如ThreadBarrier, 同步进程的类如ProcessRendezVous。
以及队列化的进程处理Channel(ProcessChannel), 线程处理Channel(ThreadChannel)等。
相关的辅助类如ChannelEventGateway.cs (处理所有正在阻塞的事件handler)
服务器端的辅助类: Daemon.cs , Sessions.cs
还有就是对window api的底层调用绑定都被放在了NTKernel.cs,NTAdvanced.cs两个文件
中(Win32文件夹下)。
因为本人时间有限,所以就在这里偷了个懒,直接把链接帖出来,大家可以下载相应的源码和
DEMO运行一下即可。
相应的下载链接如下:
http://cdrnet.net/projects/threadmsg/
http://sourceforge.net/project/showfiles.php?group_id=114853
注:在这个家伙的站上(http://cdrnet.net/projects/)还有一些别的东东,如Math.NET,
NeuroBox, NNTP 都很有意思。