C# Windows服务与桌面应用程序之间的通信

C# Windows服务与桌面应用程序之间的通信,c#,windows-services,ipc,C#,Windows Services,Ipc,我知道以前也有人问过类似的问题,但即使我在谷歌上搜索了这么久,我还是完全迷路了 我已经编写了一个小型Windows服务,它完成了我的主应用程序在后台线程中所做的工作(出于几个原因,将其移动到单独的服务是有意义的) 当后台线程作为我的应用程序的一部分运行时,它将在每次完成工作(在本例中是更新数据库)时触发一个事件,我将使用该事件的时间戳获取适当的信息来更新窗口。我不认为细节是相关的,但是如果你需要更多的细节,请让我知道 现在,我已经将数据库填充功能作为一项服务运行,问题变成了:如何替换事件过去所做

我知道以前也有人问过类似的问题,但即使我在谷歌上搜索了这么久,我还是完全迷路了

我已经编写了一个小型Windows服务,它完成了我的主应用程序在后台线程中所做的工作(出于几个原因,将其移动到单独的服务是有意义的)

当后台线程作为我的应用程序的一部分运行时,它将在每次完成工作(在本例中是更新数据库)时触发一个事件,我将使用该事件的时间戳获取适当的信息来更新窗口。我不认为细节是相关的,但是如果你需要更多的细节,请让我知道

现在,我已经将数据库填充功能作为一项服务运行,问题变成了:如何替换事件过去所做的工作?

换句话说,从我的服务到我的应用程序传递基本日期时间的最简单和/或最有效的方式是什么

我以前从未做过任何IPC,但我开始阅读它,并彻底弄糊涂了<代码>命名管道似乎是目前为止我最好的选择,但我一直找不到任何有助于我理解其功能的东西。。。我所发现的都是注释不好的代码块或“教程”,它们比我需要的要深入得多,没有清楚地涵盖基础知识

因此,如果不能建立一个良好的基础,我有点被卡住了实现简单沟通的最佳方法是什么?我在哪里可以学到该方法的基本知识?

编辑:

和往常一样,这里的每个人都很激动,谢谢大家的快速反应。结果证明,Gerrie的链接正是我所需要的(尽管当时我不知道这是我所需要的)

换句话说,从我的服务到我的应用程序传递基本日期时间的最简单和/或最有效的方式是什么


在这个场景中,您应该使用Web服务,尽管您已经使用了其他选项。

不要被命名管道概念吓跑,WCF将为您解决这些麻烦。您只需进行配置,这只是另一个通信通道,而不是使用HTTP。因此,您需要研究WCF


检查。

命名管道的级别非常低。为什么不使用WCF?原因很简单,我找不到任何东西真正清楚地说明如何开始使用基本的WCF实现。我当然愿意。您可以创建一个内存映射文件,您的服务将数据写入其中,并由应用程序读取。这很容易做到。@Alex,这不是意味着要不断检查文件是否已更新吗?这似乎是无缘无故的额外步骤(除非我遗漏了什么)。内存映射文件是一种可怕的方法。别想了。你具体指的是什么“其他选择”呢?@KyleG。我在答复中也提到了这些问题。MSMQ和网络服务哦,对不起,我完全误读了。咖啡因还没有到达老面条:)当我第一次创建我的服务时,我选择了“Windows服务”模板,而不是“WCF窗口服务”模板。。。那会有什么不同呢?使用WCF模板重新开始是否会让生活更轻松?基本上,您可以让服务的WCF部分监听端口,然后让应用程序在某个事件上ping端口(即用户单击按钮)。本教程对我很有帮助。我现在和OP在同一点上,但是到tech.pro的链接断开了。有人有这篇文章的另一个好链接或备份吗。链接断了。有更新的机会吗?很好的教程。谢谢你提到它!