我正在考虑我正在编写的应用程序的选项。一个应用程序会生成另一个应用程序的多个副本。我希望能够在一天结束时调用这些生成的应用程序来获取状态数据。
是否可以获取具有相同名称的正在运行的进程列表,并调用它们来查找它们的 id(通过公共方法)及其状态数据(通过另一个公共方法)?
正在运行的进程不是程序集;它是操作系统在处理器上 执行可执行程序集的结果。
例如,让我们将程序集(exe 或 dll)视为构建 RC 模型平面的一组指令。这些指令不必“运行”——也就是说,你不必建造飞机;它们可以放在你的书架上。但是一旦你建造了飞机,飞机就不知道它的指令是什么或曾经是什么。飞机只是在做它的事情。现在假设您有一套 RC 模型直升机的说明。好吧,这些说明可能出于某种原因引用了模型飞机说明中的某些信息。但你不会指望直升机说明书会向建造的飞机询问信息。
另一方面,您可能会提前建造飞机和直升机,以便它们能够相互通信,也许是为了避免在半空中坠毁。
回到你的问题:你不能在正在运行的进程(你的模型平面)上调用任何方法,因为这是不可能的。即使您在可执行程序集本身上调用方法,它也不会与任何正在运行的实例(进程)有任何关系;代码将从目标可执行文件(您的飞机指令)中读取,并编译为调用者可执行文件(您的直升机指令)的一部分。
但是,您可以构建可执行文件,以便它们可以通过进程间通信 (IPC) 进行通信。(有很多关于如何做到这一点的信息,只需谷歌一下即可。)不同之处在于应用程序预先设计为一起行动并在彼此之间传递信息 - 就像您的模型飞机和直升机一样 - 因此它们可以做到这一点当他们执行时。
| 归档时间: |
|
| 查看次数: |
708 次 |
| 最近记录: |