0 / 0 / 0
Регистрация: 30.06.2018
Сообщений: 1
|
|||||||||||
1 | |||||||||||
Как изменить текст на форме из дочернего потока, когда в основном потоке ожидается завершение дочернего30.06.2018, 17:14. Показов 1816. Ответов 1
Метки нет (Все метки)
Идея следующая.
в основном потоке вызывают метод класса в другом потоке. Причем необходимо: 1. чтобы пока работает дочерний поток форма не зависала 2. чтобы основной поток не выполнял дальше код, пока не завершится последний 3. чтобы из метода другого класса изменить, например, label на форме. в основном потоке по кнопке вызывается метод объекта класса. для ожидания использую AutoResetEvent
вместе приводит к бесконечному зависанию. видимо, основной поток ждет, а ему приходит команда изменения label в основном потоке. и в итоге основной поток ожидает завершения второго потока, а второй поток ждет, пока изменится label. как мне реализовать три пункта выше? работает через отмену проверки System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false; но это не очень хороший вариант Спасибо!
0
|
30.06.2018, 17:14 | |
Ответы с готовыми решениями:
1
Нотификация объекта в основном потоке из дочернего потока Завершение основной программы из дочернего потока _beginthread Завершение дочернего процесса Завершение родительского процесса из дочернего |
6451 / 4053 / 1598
Регистрация: 09.05.2015
Сообщений: 9,481
|
|||||||||||
30.06.2018, 17:38 | 2 | ||||||||||
И зачем такой геморрой? Используйте BackgroundWorker... Текст в форме можно будет обновлять через ReportProgress, так же есть событие завершения работы...
1
|
30.06.2018, 17:38 | |
30.06.2018, 17:38 | |
Помогаю со студенческими работами здесь
2
Корректное завершение дочернего процесса Завершение дочернего процесса по ошибке Как в реальном времени читать переменные главной формы из дочернего потока? Как изменить параметр дочернего обьекта? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |