2014-01-11 3 views
0

Я создал установщик игр, который копирует некоторые файлы из программы установки в каталог игры. Однако, когда я нажимаю кнопку, которая запускает суб ниже, программа зависает, пока действие не будет завершено.Остановить программу от зависания при копировании файлов

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

(переменные каталог_установки это строка задается пользователем ранее в программе и определяет место, где игра будет установлена)

Что я хотел бы иметь для программы не замерзает при нажатии кнопки ...

Есть ли способ сделать это?

Спасибо, Rodit

ответ

1

Простым способом выполнения задач в фоновом режиме является использование BackgroundWorker. См. How to: Use a Background Worker. BackgroundWorker также позволяет вам дать обратную связь с пользовательским интерфейсом, чтобы отобразить индикатор выполнения, например.

1

Вы должны знать, как использовать объект фона рабочих. Он будет выполнять копирование в другом процессе, чем тот, который использует основная часть вашей программы и, следовательно, не заставляет его замораживать. Фоновый рабочий объект можно найти в панели инструментов под компонентами.

BackgroundWorker1

Слово предупреждения, вы должны знать, как использовать его, чтобы заставить его работать правильно. Когда это будет сделано, оно вернет событие в основную часть вашей программы, и вы должны использовать это, чтобы сигнализировать пользователю о завершении процесса копирования и т. Д. Просто найдите примеры того, как это работает.

Смежные вопросы