мульти потоки с ожиданием завершения
От: Duke_Nuken Украина  
Дата: 26.03.10 14:15
Оценка:
Люди подскажите как сделать такую штуку.

Есть цикл который запускает некую функцию. Эта фенкцию отрабатывает 3-5 минут (зависит от множеста параметров).
Как можно запустить одновременно в потоках 10 вариантов этой функции?

чтото типа такого

foreach (string param in ParamArray)
{
    //takes 3-5 mins
    VeryTrickyFunction(param);

}


вот эту VeryTrickyFunction нужно запускать в потоках, но так чтобы их одновременно было не более 10.
Как только один из потоков отработает, тутже запускать слудующий.
http://FreeMusicLib.com — мой сайт с бесплатной музыкой доступной для скачивания
Re: мульти потоки с ожиданием завершения
От: SaZ  
Дата: 26.03.10 14:30
Оценка:
Здравствуйте, Duke_Nuken, Вы писали:

D_N>Люди подскажите как сделать такую штуку.


D_N>...


D_N>вот эту VeryTrickyFunction нужно запускать в потоках, но так чтобы их одновременно было не более 10.

D_N>Как только один из потоков отработает, тутже запускать слудующий.

Посмотрите в сторону семафоров.
Re: мульти потоки с ожиданием завершения
От: Jolly Roger  
Дата: 26.03.10 14:55
Оценка:
Здравствуйте, Duke_Nuken, Вы писали:

D_N>Люди подскажите как сделать такую штуку.


D_N>Есть цикл который запускает некую функцию. Эта фенкцию отрабатывает 3-5 минут (зависит от множеста параметров).

D_N>Как можно запустить одновременно в потоках 10 вариантов этой функции?

Любопытно, почему именно 10, а не 5, или, скажем, 25?
"Нормальные герои всегда идут в обход!"
Re: мульти потоки с ожиданием завершения
От: Mr.Cat  
Дата: 26.03.10 15:15
Оценка:
Здравствуйте, Duke_Nuken, Вы писали:
D_N>Как можно запустить одновременно в потоках 10 вариантов этой функции?
Похоже на Parallel.Foreach. Тут сегодня вот в одной теме книжку хорошую посоветовали: http://www.microsoft.com/downloads/details.aspx?FamilyID=86b3d32b-ad26-4bb8-a3ae-c1637026c3ee&displaylang=en.
Re[2]: мульти потоки с ожиданием завершения
От: cvetkov  
Дата: 26.03.10 15:52
Оценка:
Здравствуйте, SaZ, Вы писали:

SaZ>Посмотрите в сторону семафоров.

а лучше тредпулов
... << RSDN@Home 1.2.0 alpha 4 rev. 1227>>
Re[3]: мульти потоки с ожиданием завершения
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 27.03.10 07:29
Оценка:
Здравствуйте, cvetkov, Вы писали:

SaZ>>Посмотрите в сторону семафоров.

C>а лучше тредпулов

А еще лучше Task Parallel Library
... << RSDN@Home 1.2.0 alpha 4 rev. 1466 on Windows 7 6.1.7600.0>>
AVK Blog
Re[2]: мульти потоки с ожиданием завершения
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 27.03.10 07:29
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

D_N>>Как можно запустить одновременно в потоках 10 вариантов этой функции?

MC>Похоже на Parallel.Foreach.

Тут лучше будет реализовать на фьючерсах, имхо. Оформляем функции в виде фьючерсов, потом выполняем над их результатами нужную агрегацию.
... << RSDN@Home 1.2.0 alpha 4 rev. 1466 on Windows 7 6.1.7600.0>>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.