Форма в отдельном потоке мигает и исчезает, а должна висеть - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Доброго времени. Думал, с потоками за пару лет разобрался, и сюрпризов больше не будет, но вот непонятная вещь, и я не понимаю. что делаю не так. Форма question1 должна появиться и висеть, а она мигает на долю секунды и исчезает. Программа должна последовательно для каждого файла из списка открыть файл в excel, вывести форму question1, после нажатия кнопки на question1 - обработать файл. И по новой. код:
Листинг программы
  1. Public Sub Main(ByVal files As String())
  2. Excel = CreateObject("Excel.Application")
  3. For k = 0 To files.Length - 1
  4. WorkBook = Excel.Workbooks.Open(files(k)) 'открывается
  5. ExSheet = WorkBook.ActiveSheet
  6. Excel.Visible = True ' показывает
  7. trd1 = New Thread(AddressOf question_f)
  8. trd1.Start() ' стартует
  9. Do Until question1.Visible = True 'если поставить тут точку остановки, понятно что основной поток зацикливается тут
  10. Thread.Sleep(1000)
  11. Loop
  12. Next
  13. End Sub
  14. Sub question_f()
  15. question1.Visible = True
  16. question1.Show() 'показывает, но тут же исчезает
  17. End Sub 'может дело в том, что завершается этот раздел, и поток "обнуляется"?
Код формы question1:
Листинг программы
  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2. ReadExcel.obr() 'обработка, до нее, естественно, не доходит
  3. End Sub
  4. Private Sub question1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  5. Me.Visible = True
  6. Me.TopMost = True
  7. End Sub

Решение задачи: «Форма в отдельном потоке мигает и исчезает, а должна висеть»

textual
Листинг программы
  1.  Sub question_f()
  2.         'Form2.Visible = True
  3.         Form2.ShowDialog() 'показывает, но тут же исчезает
  4.     End Sub 'может дело в том, что завершается этот раздел, и поток "обнуляется"?

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы