我希望我的两个应用程序能够相互发送字符串,并取决于字符串" 做某事 ".
这是针对事前概念模型类型的事情,因此不需要安全预防措施,也不需要你想要的低效率.
那么我如何以最少的工作来做到这一点.
(你亲爱的家伙,所以用户可以在问题上努力工作)
有几种机制 - 可能最容易使用的是命名管道.我没有使用它,但我知道Windows Communication Foundation(WCF)也很容易使用.
有关WCF的CodePoject上有很多文章 :)
使用WCF的一个优点是可以轻松地将您的流程移动到不同的系统.(这应该适用于您的场景).
它们在多大程度上确实需要成为不同的应用程序?
您是否可以在不同的线程上从第三个项目启动两个单独的项目?
static void Main()
{
new Thread(Project1.Program.Main).Start();
new Thread(Project2.Program.Main).Start();
}
Run Code Online (Sandbox Code Playgroud)
此时,您可以使用静态变量(在第四个项目中,由前两个项目引用)在两个项目之间建立共享通信通道。例如,您可以有两个生产者/消费者队列(查看页面的一半),每个方向一个。(您希望使队列仅使用字符串,或者创建一个通用队列,然后使用ProducerConsumer<string>示例。如果您可以使用 .NET 4.0 beta,则可以使用 . BlockingCollection<string>)
这将是非常hacky的- 如果没有隔离甚至不同的AppDomains,您可以看到从两个“应用程序”访问的静态变量方面的一些有趣的效果,但这实际上就是您想要实现的目标。
您绝对不应该在生产代码附近采用这种实现想法-但对于您所描述的情况,听起来“易于实现”是最重要的一点。
以防万一项目层次结构没有意义,这里有一个图形表示
Launcher
/ \
/ \
App 1 App 2
\ /
\ /
\ /
Shared stuff
Run Code Online (Sandbox Code Playgroud)
(为了使其更简单,您实际上可以只使用一个项目,并使其主要方法使用同一项目中的方法启动两个不同的线程。无论如何,到目前为止,它是两个应用程序的想法都是烟雾和镜子。另一方面另一方面,通过分离项目可能会更容易考虑不同的应用程序。)
| 归档时间: |
|
| 查看次数: |
2651 次 |
| 最近记录: |