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 关注
- 92 浏览
添加回答
举报