C#:GUI,用于显示来自Windows服务的实时消息

我编写了一个C#windows服务,可以将消息写入自定义EventLog或任意数量的文件.这些消息都标记有一些优先级(因此,例如,只有ERROR和WARNING存储在EventLog中,但如果需要,可以将更多内容存储到文件中).

我现在要做的是创建一个GUI,可以监听这些消息并实时显示它们.允许用户观看当前消息(无论其所需的优先级),而无需将所有内容存储到文件中.我假设这是一个单独的程序,在服务中有某种形式的钩子,但我不确定从哪里开始.

这是我的第一个真正的Windows服务,所以我似乎缺少一些关键字,以找出如何做到这一点…是否有任何代码示例,教程,参考,如何做这样的事情?

UPDATE
很多有用的答案,我喜欢它,有很多方法可以解决问题!我想我将实现一个基于WCF的自托管解决方案.我仍然非常关注细节,因为我正在尝试了解WCF(我相信它对我在其他项目中非常有用)…但到目前为止,我发现视频here是最多的有用的介绍方法.

最佳答案
你可以做的是让windows服务有办法注册一个事件(你可以通过使用Windows Communication Foundation来实现).当您的错误出现时,它会触发该事件,并且会通知您的winforms应用程序.它被称为双工合同:

http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/0eb69998-0388-4731-913e-fb205528d374/

http://msdn.microsoft.com/en-us/library/ms731184.aspx

实际上,真正酷的是你可以通过这种方式监听多个应用程序.因此,您可以在屏幕上显示它,并让另一个应用程序记录它等,而不需要两个外部应用程序了解彼此.

转载注明原文:C#:GUI,用于显示来自Windows服务的实时消息 - 代码日志