我正在将更新系统拧入自制程序的自制启动器中。我有一个现成的更新程序,它在启动器中每个可用程序的单独线程中运行,通过(检查新文件并从服务器下载它们)。foreach()
有一刻我卡住了:当您从启动器单击应用程序启动按钮时,应该只检查该程序的更新,然后应该启动它。
更新然后更新,但是更新后启动有问题。我怎样才能在不将应用程序启动推入线程过程的情况下等待特定线程的完成然后才执行命令?
按钮的代码是这样的:
Thread updateThread = new Thread(new ParameterizedThreadStart(CheckAndLoadUpdateFiles));
updateThread.Start(<appdata>);
StartAppliction(<appdata>.<appname>, <appdata>.<apppath>, <appdata>.<appparams>);
我知道StartApplication
线程启动后会立即执行什么,我不想将此过程推入更新过程。
我期待您的建议和建议。
等待线程完成:
这是函数描述https://docs.microsoft.com/en-us/dotnet/api/system.threading.thread.join?view=netcore-2.1
我认为开始一个新线程是有意义的,它将是:
但是,我不排除有一个更简洁的解决方案不会启动线程。您可以考虑通过Tack实现选项。
更新
这是一个示例代码:
创建线程是一项资源密集型操作。您可以使用线程池,而不是创建线程。您还可以使等待本身异步。例子:
或者像这样
在最坏的情况下,所以