复制文件时停止程序冻结

时间:2014-01-11 17:48:07

标签: vb.net

我制作了一个游戏安装程序,可以将安装程序中的一些文件复制到游戏目录中。但是,当我单击运行下面子项的按钮时,程序会冻结,直到操作完成。

Private Sub InstallGameFilesClicked(sender as object, e as eventargs) Handles InstallGmF.click
    My.computer.filesystem.copydirectory(environment.currentdirectory & "\res\gameFiles", installDir & "\res\")
End Sub

(installDir变量是用户先前在程序中设置的字符串,用于确定游戏的安装位置)

我想要的是程序在单击按钮时不冻结...

有没有办法做到这一点?

谢谢,Rodit

2 个答案:

答案 0 :(得分:1)

您应该学习如何使用后台工作器对象。它将以与程序主要部分使用的进程不同的进程运行复制,因此不会导致其冻结。后台工作程序对象可以在组件下的工具箱中找到。

BackgroundWorker1

警告,您必须知道如何使用它才能使其正常工作。完成后,它会将一个事件返回到程序的主要部分,您应该使用它来通知用户复制过程已完成等等。只需搜索有关其工作原理的示例。

答案 1 :(得分:1)

在后台执行任务的简便方法是使用BackgroundWorker。见How to: Use a Background WorkerBackgroundWorker还允许您向UI提供反馈,以便显示进度条。