【发布时间】:2013-04-19 23:37:26
【问题描述】:
我有一个复制一些文件的后台工作人员。完成文件复制后,我想启动一个应用程序。我遇到的问题是,在复制文件时,它会调用代码来启动应用程序,因此会遇到文件正在使用错误。是否可以进行检查以确保仅在后台工作人员完成时才调用某个方法?
private void LaunchApplication(string targetPath, string targetExecutable)
{
CopyFiles();
Process.Start(Path.Combine(targetPath, targetExecutable));
}
CopyFiles 在 BackGroundWorker 的 DoWork 方法中被调用。我希望这在 Process.Start... 被调用之前完全完成。现在我有几个可执行文件绑定到几个按钮,所以我不能把 Process.Start... 放在 RunWorkerCompleted 事件中。
【问题讨论】:
-
你在使用RunWorkerCompleted事件吗?
-
您可以在运行应用程序之前检查文件是否已复制。
-
@DGibbs - 是的,但问题是我有几个可以启动的应用程序,在用户单击其中一个启动按钮之前我无法确定是哪一个。
-
@SamLeach - 我如何确定这一点?
-
@Xaisoft 我不确定我是否理解......如果工作人员不完整,你不能阻止按钮执行任何操作吗?
标签: c# winforms backgroundworker