Фоновый работник, чтобы проверить, существует ли файл
Я пытаюсь сделать код так, чтобы моя кнопка запуска была отключена до тех пор, пока определенный файл не будет создан в фоновом режиме. Я уже спрашивал здесь и начал делать это с помощью backgroundworker. Я отключил свою кнопку в режиме конструктора, и теперь я хочу, чтобы backgroundworker продолжал проверять, существует ли файл, и в конце включил startbutton. До сих пор мне не удавалось снова включить эту кнопку. Кроме того, если есть более быстрый способ с чем-то вроде наблюдателя файловой системы, я мог бы использовать его, но я не смог найти ни одного примера того, как это сделать.
Что я уже пробовал:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click BackgroundWorker1.RunWorkerAsync() Startbutton.Enabled = False Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork Do until System.IO.File.Exists("ABC") Loop End Sub Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) _ Handles BackgroundWorker1.RunWorkerCompleted Startbutton.enabled=True End Sub
Richard MacCutchan
Нет никакого смысла иметь фонового работника, если передний план ничего не делает, пока он ждет.
Marc Kane
Передний план-это создание этого файла, но для этого требуется некоторое время (проверка excel, создание конфигурации в solidworks, а затем сохранение его в новый файл), я просто не копировал код здесь.Теперь я хочу, чтобы фон включал кнопку при создании этого файла.
Richard MacCutchan
Извините, я запутался. Если передний план создает файл, то передний план знает, когда файл будет создан. Так что он также знает, когда включить кнопку.
Marc Kane
Извините, передний план запускает другое приложение, которое делает это выше, поэтому я не нашел лучшего способа сообщить переднему плану, когда процесс будет завершен, чем проверить, был ли создан окончательный файл.
Richard MacCutchan
Класс Process предоставляет различные методы, позволяющие выполнять синхронизацию с внешним процессом.
Marc Kane
Спасибо, я постараюсь это исследовать :)