是否可以将对象从一个应用程序传输到另一个应用程序(在 C# 中)?
我正在使用 CAD API。该 API 的初始化需要几秒钟 (10 - 15)。如果我可以在 App1 中只初始化一次对象并在需要时从 App2 调用它,那就太好了。
有任何想法吗?谢谢!
是否可以将对象从一个应用程序传输到另一个应用程序(在 C# 中)?
我正在使用 CAD API。该 API 的初始化需要几秒钟 (10 - 15)。如果我可以在 App1 中只初始化一次对象并在需要时从 App2 调用它,那就太好了。
有任何想法吗?谢谢!
您可以通过序列化您的对象,并使用任何形式的进程间通信来传输数据,然后在另一端反序列化它来做到这一点。
Windows Communication Foundation特别适合这种类型的场景,并为您处理大部分管道。
虽然 Reed 的建议非常好,但它可能不是唯一值得考虑的可能性。10-15 秒的初始化时间相当长。它可能正在初始化一些相当大、复杂的数据结构,这些数据结构可能需要相当长的时间来序列化和反序列化。如果是这样,可能值得考虑另一种可能性,例如创建一个充当 CAD API 前端的进程外 COM(或 DCOM)服务器,然后让 App1 和 App2 与该服务器一起工作一个地方。这意味着对您发送到/从 CAD API 接收的所有数据进行编组和解组,但取决于涉及的数据量以及(特别是)您需要从 App1 与 App2 使用的数据切换的频率,它可能仍然有较低的开销。
在我看来,一个更简单的可能性是使用共享内存。这是Windows下进程间通信的常用机制。您可能想查看链接的 CodeProject 文章。