进程间通信的方法

时间:2013-08-19 14:04:15

标签: vb.net text-files ipc methodology inter-process-communicat

我打算在VB.NET中使用Console应用程序开发Monopoly游戏,但是有一个单独的GUI(可能是Forms应用程序),它根据Console应用程序中的信息显示Monopoly板的状态,所以它可以被忽略或用作玩家的愿望。我一直在寻找在两个程序之间发送信息的方法,并遇到了Pipes,除了它们看起来很复杂,如果我可以避免它,我想使用不同的方法。以下是我正在考虑发送信息的方法 - 我想知道是否有任何方法可以改进这种方法,或者如果你认为它完全是愚蠢的,我应该只使用管道 -

程序1是控制一切的控制台应用程序:游戏状态取决于控制台。程序2是GUI / Forms应用程序,它遵循程序1发送的指令并相应地显示板。程序1和程序2使用两个文本文件Command.txt和CommandAvailable.txt进行通信。当程序1发生变化时 - 例如玩家进行移动 - 制作命令字符串并将其添加到队列中。程序1不断检查CommandAvailable.txt以确保文件为空,如果是,则清除Command.txt,然后将队列中的每个命令字符串附加到Command.txt。完成后,将任意文本添加到CommandAvailable.txt,例如, “CommandAvailable”。

程序2不断检查CommandAvailable.txt,直到不为空,这意味着程序1已向Command.txt添加了至少一个命令。然后程序2读取Command.txt上的每条指令并将其添加到另一侧的队列中。然后清除CommandAvaiable.txt,这将允许程序1向Command.txt添加更多命令(因为它只在CommandAvailable.txt为空且尚未自行标记时才添加命令。)程序2清空的单独线程命令字符串队列,解析它们并执行它们。

例如,在控制台中,播放器1可以移动到特拉法加广场(或任何广场将被调用。)程序1 /控制台将命令“move player1 trafalgar_square”添加到队列中,然后检查CommandAvailable.txt,如果它为空,则将队列中的所有命令添加到Command.txt。程序2 / GUI将检查CommandAvailable.txt,因为它已被程序1标记,读取命令,将其添加到队列,然后将代表播放器1的图片框移动到正方形。

如果您认为这种方法可以改进,或者如果您认为它只是愚蠢而且有更好的选择或者我应该只使用Pipes,请告诉我。我将使用VB.NET。

0 个答案:

没有答案