1 回答

TA貢獻2037條經驗 獲得超6個贊
一般來說,如果您正在運行一堆安裝并希望按順序運行它們,我會設置一個Task.Factory或BackgroundWorker這樣您就不會阻塞 UI 線程。我還會確保您使用 MVVM 來完成這一切,以使其變得更容易。
我首先為安裝設置一個幫助程序類。如果使用 MVVM,這個類的設置顯然會有所不同。
public class Programs
{
public string InstallName = "";
public string InstallPath = "";
public bool ExecuteInstall = false;
public int InstallProcessID = 0;
}
然后設置這些集合,并根據您的復選框將它們標記為運行或不運行。使用 MVVM,您可以將executeInstall 直接綁定到復選框。
然后是一個可以工作并由單獨的線程調用的函數。關鍵在于調用以及如何使用 Process
try
{
using (Process myProcess = new Process())
{
myProcess.StartInfo.FileName = <Your program collection object>.InstallPath;
myProcess.Start();
<Your program collection object>.InstallProcessID = myProcess.Id;
myProcess.WaitForExit();
// Any follow up code after install has completed.
}
}
catch (Exception ex)
{
// Error message that uses ex
}
取消按鈕可以查找進程 ID,然后終止該進程。您還可以創建一個臨時 int var 來存儲安裝應用程序的當前進程 ID,而不是讓它在集合中設置某些內容。
這就是總體思路。我建議更多地學習程序設計,因為 stackoverflow 更多的是一個解決問題的特定地方,而不是如何編寫一些東西。
- 1 回答
- 0 關注
- 126 瀏覽
添加回答
舉報