Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
4 / 0 / 0
Регистрация: 12.01.2015
Сообщений: 51

Отслеживание потоков при дебаге

08.03.2015, 21:31. Показов 1840. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема проста: есть несколько потоков, для всех вроде вызываю аборт, но что-то остаётся серавно(программа продолжает отрабатывать). Есть возможность просмотреть потоки решения, или нет?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.03.2015, 21:31
Ответы с готовыми решениями:

отслеживание потоков
есть список ссылок. я в цикле перебираю ссылки и асинхронно гружу каждую ссылку. как проще всего отловить что все ссылки пропарсены? ведь...

Способы отслеживание завершения потоков
Добрый день. У меня есть блок кода, который выполняет манипуляции с отдельным объектом из списка foreach (var...

Проект не компилируется при дебаге
Есть у меня проект, над которым давно работаю. Разрабатываю в VS 2010, так вот, появилась такая проблема, что при компиляции в режиме...

8
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
08.03.2015, 21:36
Цитата Сообщение от Segat Посмотреть сообщение
есть несколько потоков
Потоки основные или фоновые?
Цитата Сообщение от Segat Посмотреть сообщение
Есть возможность просмотреть потоки решения, или нет?
Насколько помню, при отладке: Отладка-Другие окна-Потоки. Примерно в таком направлении.
0
4 / 0 / 0
Регистрация: 12.01.2015
Сообщений: 51
09.03.2015, 08:30  [ТС]
Потоки основные или фоновые?
Основные
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
09.03.2015, 10:56
Цитата Сообщение от Segat Посмотреть сообщение
Основные
Так сделайте их фоновыми, зачем они нужны в основных.
0
4 / 0 / 0
Регистрация: 12.01.2015
Сообщений: 51
09.03.2015, 18:41  [ТС]
Читал где-то, что фоновые потоки - шило, если есть возможность без оных обойтись.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
09.03.2015, 18:44
Лучший ответ Сообщение было отмечено Segat как решение

Решение

Цитата Сообщение от Segat Посмотреть сообщение
Читал где-то, что фоновые потоки - шило
А про использование Abort там ничего не было написано?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
09.03.2015, 19:04
Цитата Сообщение от Segat Посмотреть сообщение
Читал где-то
Я тоже читал. И там писАли, что если есть возможность обойтись без многопоточности, то так и следует поступать.
Что касается того, какие нужны потоки - то все их (кроме основного) желательно делать фоновыми, дабы они сами умерли при выходе из приложения. Иначе они могут так и остаться висеть в процессах, что может привести к нежелательным последствиям.
0
4 / 0 / 0
Регистрация: 12.01.2015
Сообщений: 51
10.03.2015, 19:47  [ТС]
kolorotur А то, что я про аборт в первом посте написал, это не для вас???
0
[Bicycle Reinventor]
 Аватар для Exerion
332 / 270 / 109
Регистрация: 19.10.2011
Сообщений: 668
Записей в блоге: 2
11.03.2015, 10:21
Цитата Сообщение от Segat Посмотреть сообщение
kolorotur А то, что я про аборт в первом посте написал, это не для вас???
лол, kolorotur имел в виду, что использование thread.abort не рекомендуется использовать гораздо в большей степени, чем фоновые потоки. "Не рекомендуется" - это ещё мягко сказано, лучше сказать, что такие вещи вообще запретить надо.

Добавлено через 9 минут
На msdn чёрным по белом написано:
When this method is invoked on a thread, the system throws a ThreadAbortException in the thread to abort it. ThreadAbortException is a special exception that can be caught by application code, but is re-thrown at the end of the catch block unless ResetAbort is called. ResetAbort cancels the request to abort, and prevents the ThreadAbortException from terminating the thread. Unexecuted finally blocks are executed before the thread is aborted.


When a thread calls Abort on itself, the effect is similar to throwing an exception; the ThreadAbortException happens immediately, and the result is predictable. However, if one thread calls Abort on another thread, the abort interrupts whatever code is running. There is also a chance that a static constructor could be aborted. In rare cases, this might prevent instances of that class from being created in that application domain. In the .NET Framework versions 1.0 and 1.1, there is a chance the thread could abort while a finally block is running, in which case the finally block is aborted.

The thread is not guaranteed to abort immediately, or at all. This situation can occur if a thread does an unbounded amount of computation in the finally blocks that are called as part of the abort procedure, thereby indefinitely delaying the abort. To wait until a thread has aborted, you can call the Join method on the thread after calling the Abort method, but there is no guarantee the wait will end.


The thread that calls Abort might block if the thread that is being aborted is in a protected region of code, such as a catch block, finally block, or constrained execution region. If the thread that calls Abort holds a lock that the aborted thread requires, a deadlock can occur.

If Abort is called on a thread that has not been started, the thread will abort when Start is called. If Abort is called on a thread that is blocked or is sleeping, the thread is interrupted and then aborted.

If Abort is called on a thread that has been suspended, a ThreadStateException is thrown in the thread that called Abort, and AbortRequested is added to the ThreadState property of the thread being aborted. A ThreadAbortException is not thrown in the suspended thread until Resume is called.

If Abort is called on a managed thread while it is executing unmanaged code, a ThreadAbortException is not thrown until the thread returns to managed code.

If two calls to Abort come at the same time, it is possible for one call to set the state information and the other call to execute the Abort. However, an application cannot detect this situation.

After Abort is invoked on a thread, the state of the thread includes AbortRequested. After the thread has terminated as a result of a successful call to Abort, the state of the thread is changed to Stopped. With sufficient permissions, a thread that is the target of an Abort can cancel the abort using the ResetAbort method. For an example that demonstrates calling the ResetAbort method, see the ThreadAbortException class.
И ещё раз:
The thread is not guaranteed to abort immediately, or at all.
Кроме того, прерывая поток подобным образом, вы не знаете, в каком именно месте он прерывается, и что вообще произойдёт. Подробнее - в rsdn magazine.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.03.2015, 10:21
Помогаю со студенческими работами здесь

Исключить метод из обхода при дебаге
Каким образом (атрибутом?) исключить методы, свойства из прохода по Step Into? Т.е. я НЕ хочу заходить в некоторые методы, в которые...

Какие потоки лучше при обработки небольшого объёма информации, но при большом количестве потоков
Собственно заинтересовали следующие вопросы: Какой из потоков работает быстрее? Какой из потоков стартует быстрее? Какие потоки...

Отслеживание клика мыши, и того что происходит при клике
Всем привет),помогите:cry:.Такая запара,надо отслеживать клик левой кнопки мыши,и если при клике что-то произошло (например, открылся...

Разработать программу, генерирующую n потоков в пуле потоков CLR
Добрый вечер. Решил поделать старые лабораторные, которые мне уже давно нужно было сдавать, но встрял на одном задании: "Разработать...

Разные результаты работы при обычном запуске и при дебаге (использование dll)
Есть dll, в ней есть процедура и функция, которые мне надо использовать procedure SetStr(aStr : PChar) stdcall; external 'DLLTest.dll'; и ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru