Рейтинг:
9
CPallini
Цитата:
а также как бы я остановил поток, не используя thread.abort, как я слышал, это зло, но мне это нужно по щелчку кнопки
Видеть
Изящное Завершение Работы Рабочих Потоков[
^], это так
C#
, но вы могли бы легко адаптировать его к
VB.NET
(КСТАТИ
C# lock
является
SyncLock
в
VB.NET
).
OfficalCodexPH
ладно, чувак, ура, и пока ты здесь, мне было интересно, знаешь ли ты, как я могу поместить оставшееся время индикатора прогресса в ярлык, так или иначе извиняюсь за неудобства, просто интересно, знаешь ли ты. Спасибо за помощь :-)
Рейтинг:
19
OriginalGriff
Поток-это пользователь процессора по определению: он работает на ядре до тех пор, пока не найдет ничего, что нужно сделать, и либо завершается, либо приостанавливается по какой-то причине. (Он может быть приостановлен системой, если необходимо выполнить более приоритетную задачу).
Поэтому, если ваш поток использует значительные ресурсы процессора, вам нужно внимательно посмотреть, какой код он выполняет: это то, что использует процессор, и мы этого не видим! Начните с вашего TimerStart
код и посмотреть, что он делает.
OfficalCodexPH
ладно чувак я сейчас посмотрю спасибо чувак.
OriginalGriff
Всегда пожалуйста!
OfficalCodexPH
чувак, ты знаешь, что сказал, Если поток был прерван ЭСТ ну а что, если бы я хотел, чтобы пользователь нажал кнопку остановки, как бы он немедленно остановил поток, просто нажав кнопку остановки? Жаль, что вопрос мой многопоточность инст лучших :-)
OriginalGriff
В принципе, они не могут.
Они могут - нить может быть прервана, но это все равно, что потянуть за аварийный шнур в поезде: он останавливается мертвым, и все разбрасываются. Когда вы прерываете поток, все, что он делает, убивается - и это означает, что файлы не закрываются должным образом, данные отбрасываются и т. д. И если он взял замок, то этот замок не освобождается, так что все остальное, что хочет его, висит навсегда. Это самое последнее средство.
Вместо этого вы используете переменную, которая говорит потоку остановиться - он часто проверяет ее, и когда он находит запрос на остановку, он изящно завершает работу. Насколько быстро это произойдет, зависит от того, как часто ваш код проверяет переменную!
OfficalCodexPH
о'Кей, чувак, спасибо за помощь, теперь я понимаю, что ты имеешь в виду. :-)