Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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
C# 我可以在另一个正在运行的进程上调用公共方法吗?_C#_Process - Fatal编程技术网

C# 我可以在另一个正在运行的进程上调用公共方法吗?

C# 我可以在另一个正在运行的进程上调用公共方法吗?,c#,process,C#,Process,我正在考虑我正在编写的应用程序的选项。一个应用生成另一个应用的多个副本。我希望能够在一天结束时调用这些衍生的应用程序来获取状态数据 是否可以获取具有相同名称的正在运行进程的列表,并调用它们以查找它们的id(通过公共方法)和状态数据(通过另一个公共方法)?正在运行的进程不是程序集;它是操作系统在处理器上执行可执行程序集的结果 例如,让我们将程序集(exe或dll)视为用于构建RC模型平面的一组指令。指令不必是“运行”的——也就是说,你不必建造飞机;他们可以坐在你的书架上。但是一旦你建造了飞机,飞机

我正在考虑我正在编写的应用程序的选项。一个应用生成另一个应用的多个副本。我希望能够在一天结束时调用这些衍生的应用程序来获取状态数据


是否可以获取具有相同名称的正在运行进程的列表,并调用它们以查找它们的id(通过公共方法)和状态数据(通过另一个公共方法)?

正在运行的进程不是程序集;它是操作系统在处理器上执行可执行程序集的结果

例如,让我们将程序集(exe或dll)视为用于构建RC模型平面的一组指令。指令不必是“运行”的——也就是说,你不必建造飞机;他们可以坐在你的书架上。但是一旦你建造了飞机,飞机就不知道它的指令是什么。飞机只是在做它的事情。现在让我们假设您有一套关于RC模型直升机的说明。由于某种原因,这些说明可能引用了模型平面说明中的一些信息。但你不会指望直升机说明书会向制造的飞机询问信息

另一方面,你可以提前建造你的飞机和直升机,这样它们就可以互相沟通,也许是为了避免在空中坠毁

回到你的问题上来:你不能在正在运行的进程(你的模型平面)上调用任何方法,因为那是不可能的。即使您对可执行程序集本身调用了方法,也与任何正在运行的实例(进程)无关;代码将从目标可执行文件(飞机指令)中读取,并作为调用方可执行文件(直升机指令)的一部分进行编译


但是,您可以构建可执行文件,以便它们可以通过进程间通信(IPC)进行通信。(有很多关于如何做到这一点的信息,只需谷歌一下。)不同之处在于,应用程序是事先设计好的,可以一起行动,并在彼此之间传递信息——就像你的模型飞机和直升机一样——因此,它们在执行时会这样做。

正在运行的进程不是一个程序集;它是操作系统在处理器上执行可执行程序集的结果

例如,让我们将程序集(exe或dll)视为用于构建RC模型平面的一组指令。指令不必是“运行”的——也就是说,你不必建造飞机;他们可以坐在你的书架上。但是一旦你建造了飞机,飞机就不知道它的指令是什么。飞机只是在做它的事情。现在让我们假设您有一套关于RC模型直升机的说明。由于某种原因,这些说明可能引用了模型平面说明中的一些信息。但你不会指望直升机说明书会向制造的飞机询问信息

另一方面,你可以提前建造你的飞机和直升机,这样它们就可以互相沟通,也许是为了避免在空中坠毁

回到你的问题上来:你不能在正在运行的进程(你的模型平面)上调用任何方法,因为那是不可能的。即使您对可执行程序集本身调用了方法,也与任何正在运行的实例(进程)无关;代码将从目标可执行文件(飞机指令)中读取,并作为调用方可执行文件(直升机指令)的一部分进行编译


但是,您可以构建可执行文件,以便它们可以通过进程间通信(IPC)进行通信。(有很多关于如何做到这一点的信息,只需谷歌一下。)不同之处在于,应用程序是事先设计好的,可以一起行动,并在彼此之间传递信息——就像模型飞机和直升机一样——因此它们在执行时会这样做。

你说的是IPC进程间通信。看看MSMQ和HTTP通信之类的东西。这将允许您只需轮询他们的任何信息状态!如果您可以控制其他应用程序的编译。生成的应用程序不能将其状态写入stdout,以便您在生成端进行分析吗?您正在谈论IPC进程间通信。看看MSMQ和HTTP通信之类的东西。这将允许您只需轮询他们的任何信息状态!如果你可以控制其他应用程序的编译。生成的应用程序不能将其状态写入stdout,以便你在生成端进行解析吗?是的,说得好,比我在评论中的尝试要好!谢谢-我需要一个方向正确的方向盘。匿名管道看起来像是我要找的。虽然我需要双工通信:“嘿,你的状态是什么?”“我的状态是x”,所以我需要命名管道。IPC对我来说是全新的(以防不明显)。是的,说得好,比我在评论中的尝试要好!谢谢-我需要一个方向正确的方向盘。匿名管道看起来像是我要找的。虽然我需要双工通信:“嘿,你的状态是什么?”“我的状态是x”,所以我需要命名管道。IPC对我来说是全新的(以防不明显。)