复制文件时阻止程序冻结



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

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

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

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

有没有办法做到这一点?

谢谢,罗迪特

在后台执行任务的一种简单方法是使用 BackgroundWorker 。请参见如何:使用后台辅助角色。该BackgroundWorker还允许您向UI提供反馈,以便例如显示进度条。

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

后台工作者1

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

最新更新