サービスを使用してファイルを暗号化するソフトウェアがあります。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 に変更します。