Так что я сейчас использую BackgroundWorker1_DoWork
для создания PDF-файлов. На BackgroundWorker1RunWorker1_Completed
Я использую следующий код для перемещения этих файлов из одного локатора в другой.Форма замораживания при перемещении файлов
'MOVE PDFs TO NEW LOCATION
For Each foundFile As String In My.Computer.FileSystem.GetFiles("C:\Temp\", FileIO.SearchOption.SearchAllSubDirectories, "*.pdf")
Dim foundFileInfo As New System.IO.FileInfo(foundFile)
'ToolStripStatusLabel1.Text = "Moving PDFs..."
File.Move(foundFile, "\\server\temp\" & foundFileInfo.Name) 'MOVES PDFs
Next
Когда программа доходит до этой точки, моя форма застывает, не может переместить окно, не прокручивать, ничего в рамках программы не может сделать.
Что заставило бы мою форму заморозить? Есть ли способ устранить это?
Почему бы вам не поместить этот код в событие RunWorkerCompleted? Поместите его в обработчик событий DoWork. –
Почему бы просто не перемещать файлы в фоновом режиме? –
Я использую для каждого statmement в DoWork для создания PDF-файлов. У меня возникла проблема, ожидающая завершения этого процесса, прежде чем продолжить. Несмотря на то, что я использую 'psinfo.WaitForExit()', я не понял, почему и, следовательно, любой код после того, как мой For Each работает до того, как файлы будут полностью созданы. Вот почему я решил переместить PDF-файлы после завершения DoWork. – Muhnamana