我有一个使用服务来加密文件的软件。 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.