在.net Windows服务和应用程序之间发送和接收数据的最简单方法是什么

时间:2013-01-20 03:55:12

标签: windows vb.net service

我有一个使用服务来加密文件的软件。 GUI序列化包含文件路径的哈希表,然后使用ExecuteCommand方法通知服务。该服务反序列化哈希表并处理文件。

我需要的服务是以某种方式告诉GUI它已完成处理,因此GUI可以显示某种形式的通知。服务将数据发送到GUI的最佳方式是什么?此外,如果有人可以替代我目前向服务发送文件路径的方法,我愿意接受建议。

编辑: 这就是我现在正在做的事情:

Dim sk = My.Computer.Registry.LocalMachine.CreateSubKey("SOFTWARE\AesESvc")
Dim scAES As New ServiceProcess.ServiceController("AesESvc")

sk.SetValue("Processing", 1, Microsoft.Win32.RegistryValueKind.DWord)

scAES.ExecuteCommand(132)


Do While (sk.GetValue("Processing") = 1)
    sblProcess.Text = "Processing"
Loop

Dim total As Int32 = lvwLoad.Items.Count - sk.GetValue("ErrorsInLastProcess")

If total > 1 Then
    sblProcess.Text = (total & " items successfully processed." & vbCrLf & sk.GetValue("ErrorsInLastProcess") & " error(s)")
ElseIf total = 1 Then
    sblProcess.Text = (total & " item successfully processed." & vbCrLf & sk.GetValue("ErrorsInLastProcess") & " error(s)")
ElseIf total < 1 Then
    sblProcess.Text = ("None of the items could be processed." & vbCrLf & sk.GetValue("ErrorsInLastProcess") & " error(s)")
End If

该服务在完成后将Processing注册表值更改为0.

1 个答案:

答案 0 :(得分:0)

命名管道应该运行良好。以下是一些信息:

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