Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ThreadPool, Изменение статуса потока 
:(
    Опции темы
Lexicss
Дата 29.1.2009, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 16.8.2006
Где: Беларусь, Минск

Репутация: нет
Всего: 1



При запуске метода в отдельном потоке средствами ThreadPool, поток выполняется в "фоновом" плане. Однако этот статус можно изменить, если свойстыу IsBackground текущего потока присвоить значение false. 
Об этом ещё упомянуто в книжке Microsoft .NET в подлиннике @ А.Дубовцев [2004]. 
Проверив эту ситуацию на практике в этом и убедился. 

Однако, в книжке C-SHARP 2008 - ускоренный курс для профессионалов @ Т.Нэш [2008] автор настоятельно советует никогда не менять статус IsBackground из пула в текущем потоке, в противном случае это никакого эффекта не даст. 

Кому верить? Действительно, ли гражданин Т. Нэш прав? На практике то вроде как эффект в этом есть. Или я чего-то не знаю(.NET начал интенсивно изучать лишь в этом году)?

В MSDN про эту ситуацию ничего не нашёл.

Кто что умного подскажет у кого есть опыт в этом деле?
Заранее благодарен.
--------------------
Бери от жизни всё.
PM MAIL WWW ICQ Skype   Вверх
mihryak
Дата 29.1.2009, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



что-то ты странное прочитал в обоих книжках и в мсдн
Цитата
Поток является либо фоновым, либо основным. Фоновые потоки идентичны основным за тем исключением, что фоновые потоки не предотвращают завершение процесса. Поскольку все основные потоки, принадлежащие процессу, завершились, общеязыковая среда выполнения завершает процесс. Все оставшиеся фоновые потоки останавливаются и не завершаются.


вот и всё различие
не вижу причин отказываться от использования

Добавлено через 5 минут и 32 секунды
Цитата(Lexicss @  29.1.2009,  19:36 Найти цитируемый пост)
При запуске метода в отдельном потоке средствами ThreadPool,

через QueueUserWorkItem?
PM MAIL ICQ   Вверх
archeg
Дата 30.1.2009, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

Репутация: 11
Всего: 27



Ну потоки с пула не закрываються никогда, поэтому я бы не стал бы их делать не бекграундными. В остальном mihryak, прав


--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
PashaPash
Дата 30.1.2009, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



archeg, опыт показал что .net выставляет IsBackground=true при возврате потока в пул.


--------------------
PM MAIL WWW   Вверх
WarHog
Дата 30.1.2009, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.10.2007
Где: Воронеж

Репутация: нет
Всего: 2



Цитата(archeg @ 30.1.2009,  00:38)
Ну потоки с пула не закрываються никогда

archeg, почему же?

"When a thread pool thread suspends itself, it waits for 40 seconds. If 40 seconds elapses and the thread is given nothing to do, then the thread wakes up and destroys itself, freeing all the OS resources (stack, kernel object, and so forth) that it was using."
--------------------
PM MAIL   Вверх
Lexicss
Дата 30.1.2009, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 16.8.2006
Где: Беларусь, Минск

Репутация: нет
Всего: 1



mihryak, 
Цитата
через QueueUserWorkItem?

Да.

Тут надо принять решение пользоваться ли встроенным тредпулом или нет, однако нужно чтобы потоки работали в фореграунде, а когда в литературе наткнулся на это сообщение вот и возник вопрос.  smile 
Моё приложение планируется использовать и на Линуксе. Может тут в кросплатфореннсти может быть не состыковка?
--------------------
Бери от жизни всё.
PM MAIL WWW ICQ Skype   Вверх
mihryak
Дата 30.1.2009, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



Цитата(Lexicss @  30.1.2009,  19:10 Найти цитируемый пост)
Моё приложение планируется использовать и на Линуксе. Может тут в кросплатфореннсти может быть не состыковка? 

запросто, работа тредпула определяется рантаймом, т.е. как реализуют в моно - так и будет
он и так слабо документирован и в вин-реализации
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0465 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.