21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
|
||||||
1 | ||||||
.NET 4.x Запуск потока вне очереди16.01.2012, 20:24. Показов 1181. Ответов 5
Метки нет (Все метки)
Имею
В общем мне нужно запустить поток не в очередь, а сразу, чтобы мгновенно добавить информацию. Добавлено через 11 минут Есть еще подозрение что это из за второго join.
0
|
16.01.2012, 20:24 | |
Ответы с готовыми решениями:
5
Как остановить три потока по очереди? Отложеный запуск потока с параметрами Запуск события из фонового потока для взаимодействия с основным Запуск javascript из другого потока |
17772 / 12925 / 3378
Регистрация: 17.09.2011
Сообщений: 21,198
|
||||||
16.01.2012, 21:26 | 2 | |||||
Еще как ждет. Только метод BeginInvoke запускается асинхронно, потому поток почти сразу же схлапывается.
Что-что? Ничего не понял из этого предложения. Зачем тогда вообще поток нужен?
0
|
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
|
|
16.01.2012, 22:31 [ТС] | 3 |
Блин ну это очевидно...
Я же заполняю не из потока, где элемент создал.
0
|
17772 / 12925 / 3378
Регистрация: 17.09.2011
Сообщений: 21,198
|
|
16.01.2012, 22:37 | 4 |
Serg046, да я не могу никак понять в чем проблема заключается.
0
|
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
|
||||||
16.01.2012, 23:06 [ТС] | 5 | |||||
Я получаю свое измененное значение по завершению этого кода
0
|
17772 / 12925 / 3378
Регистрация: 17.09.2011
Сообщений: 21,198
|
|
16.01.2012, 23:42 | 6 |
А, понятно.
Ну в данном случае, вызывая Join на cn, вы блокируете основной поток, в котором происходит отрисовка контролов. Вызывая в дополнительном потоке label1.BeginInvoke, вы перенаправляете выполнение метода в основной поток, который на данный момент уже заблокирован. В результате изменение текста будет выполнено тогда, когда основной поток разблокируется, то есть после завершения выполнения обработчика клика по кнопке. Этого можно избежать либо с использованием синхронизации потоков (можно с классом Monitor поиграться), либо поставив выставив свойство Control.CheckForIllegalCrossThreadCalls на false, но это делать не рекомендуется.
1
|
16.01.2012, 23:42 | |
16.01.2012, 23:42 | |
Помогаю со студенческими работами здесь
6
Как вне потока запустить цикл который был остановлен Запуск архивов по очереди Запуск независимого потока Thread. Запуск потока и уничтожение. C# Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |