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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нубский вопрос по ThreadPool 
:(
    Опции темы
vLite
Дата 21.10.2008, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте , я новичек в программировании под .NET и в целом.

Я столкнулся с проблемой при работе с классом ThreadPool. Он просто не работает.
Вот код метода Main
Код

static void Main(string[] args)
        {
            int workThreads;
            int complThreads;

            ThreadPool.GetMaxThreads(out workThreads, out complThreads);

            Console.WriteLine("Max Work Threads: {0} & Max Compl Threads: {1}", workThreads, complThreads);

            for(int i = 0; i < 5; i++)
            {
                ThreadPool.QueueUserWorkItem(ActionItem);
            }
        }


Вот код метода для запуска
Код

static void ActionItem(object state)
        {
            Console.WriteLine("Current thread : {0}", Thread.CurrentThread.ManagedThreadId);
        }


В результате на консоле я вижу только :
Max Work Threads : 1000 & Max Compl Threads : 1000 // Это результат первой строки

А вот работу ThreadPool я не вижу..
Почему так?
PM MAIL   Вверх
Antarn
Дата 21.10.2008, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



У меня ваш код выдал
Цитата

Max Work Threads: 250 & Max Compl Threads: 1000
Current thread : 6
Current thread : 6
Current thread : 6
Current thread : 6
Current thread : 6

Попробуйте так же заменить
Код

ThreadPool.QueueUserWorkItem(ActionItem);

на
Код

ThreadPool.QueueUserWorkItem(new WaitCallback(ActionItem));

PM MAIL   Вверх
vLite
Дата 21.10.2008, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Поставил как ты просил , но это одно и тоже.

Поменял в цикле i <= 10000000
Теперь вижу в консоле идёт прогресс , НО!
Он останавливается на :
30668 -> Current thread : 3
30669 -> Current thread : 3
30670 -> Current thread : 3
30671 -> Current thread : 3
30662 -> Current thread : 4
30672 -> Current thread : 3
30674 -> Current thread : 3
30675 -> Current thread : 3
30676 -> Current thread : 3
30677 -> Current thread : 3
30678 -> Current thread : 3
Press any key to continue . . .


Он не доходит до значения 10000000? Или чтото другое?
А процессор не влияет на это? Просто у меня 4х ядерный...

Это сообщение отредактировал(а) vLite - 21.10.2008, 22:18
PM MAIL   Вверх
PashaPash
Дата 21.10.2008, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



vLite, ты выходишь из главного потока сразу после запуска остальных. Добавь Console.ReadLine();


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

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


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

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


 




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


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

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