0

如何使命令行实用程序在 vb.net 的 Async BackgroundWorker 进程中运行?

例子:

Private Sub UpgradeButton_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UpgradeButton.Click
    BackgroundWorker1.RunWorkerAsync()
End Sub

Private Sub BackgroundWorker1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork

    Dim MyWorkingDirectory = "C:\Windows\System32\"
    Dim MyFileName As String = "notepad.exe"
    Dim MyArguments As String = ""

    Dim myProcess As System.Diagnostics.Process = New System.Diagnostics.Process()
    myProcess.StartInfo.WorkingDirectory = MyWorkingDirectory
    myProcess.StartInfo.FileName = MyFileName
    myProcess.StartInfo.Arguments = MyArguments
    myProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden
    myProcess.Start()
    ' Wait until it ends.
    myProcess.WaitForExit()
    ' Close the process to free resources.
    myProcess.Close()

End Sub
4

1 回答 1

0

我不确定你的代码为什么不起作用——我想它不起作用——我想给你一些建议:使用线程而不是 BackgroundWorker。如果您只需要启动应用程序,请使用一个简单的线程:

Public Shared Sub ThreadProc()
    ''Starth the process here!
End Sub


Dim t As New Thread(AddressOf ThreadProc)
t.IsBackground = True
t.Start()

启动的线程打开您需要的进程,主线程继续执行。我希望这是您需要的答案!

于 2012-07-22T12:28:19.950 回答