Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 05.10.2012, 10:58   #1
shipa988
Новичок
 
Регистрация: 05.10.2012
Сообщений: 2
Репутация: 10
Печаль Потоки

всем привет) помогите плиз.
Проблема в следующем: есть программа в которой создано несколько потоков каждый выполняет свою определенную функцию. так например-
1 поток. считывает имена файлов с диска-передает во второй в очереди
2 поток. считывает очередь с именами файлов, считывает их с диска и преобразует их определенным образом (ну скажем выполняет преобразование X) и передает файлы(массив байт) в очередь следующему потоку.
3 поток. считывает файлы с очереди и выполняет преобразование Y-более сложное и длительное чем X и передает следующему потоку
4 поток. считывает файлы с очереди и записывает преобразованные файлы на диск.

При этом каждый поток 1,2,3,4-используют отдельные dll


при работе программы на 8 ядерной тачке общая загрузка проца 15 процентов!!!
скорость работы программы меня не устраивает!

когда добавляю еще потоков(5 штук) типа 3 потока которые выполняют преобразование Y (перед этим 2 поток равномерно раскидывает файлы на все 5 потоков 3 типа) скорость работы программы не увеличивается!! в среднем количество обработанных файлов одинаковое что для 1 потока 3 вида что для 2х или 5... при этом проц все также на 15 процентах-не более!!!!

примерная схема работы на рисунке)))
Вопрос: почему не получается прирост производительности???
Вопрос: как можно сделать так чтобы проц загружался прогой на максимум?????
Изображения
Тип файла: jpg схема.jpg (86.8 Кб, 67 просмотров)
shipa988 вне форума   Ответить с цитированием
Старый 05.10.2012, 11:51   #2
Guy
Форумчанин
 
Регистрация: 15.12.2010
Адрес: yaroslavl
Сообщений: 398
Репутация: 129
По умолчанию

ОС 32 или 64 битная ? И какую сборку делаешь под х86, 64 или AnyCPU
Guy вне форума   Ответить с цитированием
Старый 05.10.2012, 15:37   #3
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
Репутация: 76
По умолчанию

попробуйте
Код:
thread.Priority = ThreadPriority.Highest;
или через
http://pinvoke.net/default.aspx/kern...dPriority.html
можно поставить THREAD_PRIORITY_TIME_CRITICAL

Последний раз редактировалось Reskov; 05.10.2012 в 15:41.
Reskov вне форума   Ответить с цитированием
Старый 05.10.2012, 16:17   #4
shipa988
Новичок
 
Регистрация: 05.10.2012
Сообщений: 2
Репутация: 10
По умолчанию

ОС на которой пишу 32 битная и для которой пишу 64-битная. А вот сборка не помню...хорошая мысль) завтра же посмотрю) с приоритетом тоже попробую . спасибо.- завтра напишу что получилось!)
shipa988 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Потоки Базиля Общие вопросы Delphi 11 10.08.2012 15:50
[C#] Потоки Lemo C# (си шарп) 2 24.05.2011 21:50
Потоки. FieStik Общие вопросы C/C++ 4 23.05.2011 14:12
Потоки RedScreenOfLife Общие вопросы C/C++ 5 07.03.2011 15:30
потоки Cpluser Общие вопросы .NET 5 15.02.2011 23:17


09:09.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru