Windows服务和桌面应用程序之间的通信

时间:2013-08-30 14:57:30

标签: c# windows-services ipc

我知道以前曾经问过类似的问题,但即使在我的谷歌搜索结束后,我仍然完全迷失了。

我编写了一个小型Windows服务来执行我的主要应用程序使用在后台线程中执行的操作(由于多种原因将其移动到单独的服务是有意义的。)

当后台线程作为我的应用程序的一部分运行时,它会在每次完成工作时触发事件(在这种情况下更新数据库)并且我将使用该事件的时间戳来获取相应的信息以进行更新窗户。我不认为具体内容是相关的,但如果您需要更多详细信息,请告诉我。

既然我已经将数据库填充内容作为服务运行,那么问题就变成了:如何替换事件过去所做的事情?

换句话说,将基本DateTime从我的服务传递到我的应用程序的最简单和/或最有效的方法是什么?

我以前从未做过任何IPC,但是开始阅读并彻底搞砸了。到目前为止,Named Pipes似乎是我最好的选择,但我一直找不到任何可以帮助我理解其功能的内容......我发现的所有内容都是评论不佳的代码或“教程” 方式比我需要的更深入,没有明确涵盖基础知识。

所以,如果没有能够建立一个良好的基础,我有点卡住了。 实现简单通信的最佳方法是什么,这些方法可以完成我的活动以及我在哪里可以学习该方法的基础知识?

修改

与往常一样,每个人都在摇滚,感谢所有快速反应。格里的链接结果正是我所需要的(虽然我不知道那是我当时需要的)。

2 个答案:

答案 0 :(得分:7)

不要被命名管道概念吓跑,WCF将为您处理讨厌的事情。您只需要进行配置,它只是另一个通信通道,而不是使用HTTP。所以你需要调查WCF。

查看this tutorial

答案 1 :(得分:2)

  

换句话说,将基本DateTime从我的服务传递到我的应用程序的最简单和/或最有效的方法是什么?

您应该在此方案中使用named pipe,但您涉及的其他选项包括MSMQ,webservices。

相关问题