Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 进程间通信方法_Vb.net_Text Files_Ipc_Methodology_Inter Process Communicat - Fatal编程技术网

Vb.net 进程间通信方法

Vb.net 进程间通信方法,vb.net,text-files,ipc,methodology,inter-process-communicat,Vb.net,Text Files,Ipc,Methodology,Inter Process Communicat,我计划在VB.NET中使用一个控制台应用程序开发一个垄断游戏,但要有一个单独的GUI(可能是一个表单应用程序),它根据控制台应用程序中的信息显示垄断板的状态,以便玩家可以忽略或使用它。我一直在研究在两个程序之间发送信息的方法,遇到了管道,只是它们看起来很复杂,如果可以避免的话,我想使用另一种方法。以下是我目前正在考虑发送信息的方法-我想知道是否有任何方法可以改进此方法,或者您是否认为它完全愚蠢,我应该改用管道- 程序1是控制一切的控制台应用程序:游戏的状态取决于控制台。程序2是GUI/Forms

我计划在VB.NET中使用一个控制台应用程序开发一个垄断游戏,但要有一个单独的GUI(可能是一个表单应用程序),它根据控制台应用程序中的信息显示垄断板的状态,以便玩家可以忽略或使用它。我一直在研究在两个程序之间发送信息的方法,遇到了管道,只是它们看起来很复杂,如果可以避免的话,我想使用另一种方法。以下是我目前正在考虑发送信息的方法-我想知道是否有任何方法可以改进此方法,或者您是否认为它完全愚蠢,我应该改用管道-

程序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上的每条指令,并将其添加到另一侧的队列中。然后清除CommandAvailable.txt,这将允许程序1向Command.txt添加更多命令(因为它仅在CommandAvailable.txt为空且尚未自身标记时添加命令)。程序2上的一个单独线程清空命令字符串队列,解析并执行它们

例如,在控制台中,玩家1可能会移动到特拉法加广场(或该广场的名称)。程序1/控制台会将命令“move player1 Trafalgar_Square”添加到队列中,然后选中CommandAvailable.txt,如果该命令为空,则将队列中的所有命令添加到Command.txt。程序2/GUI将检查CommandAvailable.txt,正如程序1所标记的那样,读取命令,将其添加到队列中,然后将代表播放器1的picturebox移动到正方形


请让我知道,如果你认为这种方法可以改进,或者如果你认为它很愚蠢,有更好的选择,或者我应该用管道代替。我将使用VB.NET。

在.NET中,推荐使用的进程间通信标准技术是WCF。您可以使用、或、或(我将使用)、或排队服务之类的东西,实际上,除了将命令写入文本文件以便在进程之间传递数据。