回复 6楼 shi781203
用 网络通讯 吧。
这应该是一个典型的 C/S 程序。
投注端有一个主控端,或者说第一个运行的实例自动成为 主控端,保存 最终的金额。
其它实例运行后,先查找是否有主控端,如果无,则自己成功 主控端。
每次金额发生变化,都通知主控端,然后再由主控端把金额变化通知给 其它实例。
如果你不打算用 网络通讯 ,那就用 内存映射文件 或 临时文件吧。
这二种,操作是一样的,只是 内存映射文件更快一点,更复杂一点。
1、先建立内存映射文件。(临时文件不需要这步)。
2、每开一个实例时,在文件中写一个计数号,每关闭一个实例时,在文件中减掉一个计数号。
3、每次金额变化后,读写文件,都把变化后的金额及变化时间写进去。及自己的计数号写进去。
4、每个实例,定时(如 0.1秒,内存映射文件,0.5秒,临时文件)去读取金额变化情况,
并与自己保存的时间相比,如果比自己的时间后,并且 计数号不是自己的,更新自己的金额。
5、关闭实例时,把自己的计数号从计数序列中去掉。
6、如果自己是最后一个,那么关闭内存映射文件(临时文件不需要这步)。
-------------------
临时文件内容示例:
50000,2012-02-01,18:30,10
1,3,5,8,10,11,12,13,15,
--------------------
第一行,金额,日期,时间,计数号
第二行,所有的计数号。
新的计数号等于最后一个计数号+1