|
Как распараллелить в данном случае?
|
|||
---|---|---|---|
#18+
Есть массив объектов, содержащий N объектов типа id name total free здесь name - сетевой путь. Как параллельно запустить опрос шар и заполнить total и free? Т.е. практически получается N одинаковых задач с разными параметрами... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 18:05 |
|
Как распараллелить в данном случае?
|
|||
---|---|---|---|
#18+
Winnipuh, в чем проблема? Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 18:13 |
|
Как распараллелить в данном случае?
|
|||
---|---|---|---|
#18+
netivanWinnipuh, в чем проблема? Код: c# 1.
надо наверное как-то ограничить количество, если будет много элементво в списке? Если скажем 1000... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 18:17 |
|
Как распараллелить в данном случае?
|
|||
---|---|---|---|
#18+
Winnipuh, Не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 18:25 |
|
Как распараллелить в данном случае?
|
|||
---|---|---|---|
#18+
WinnipuhnetivanWinnipuh, в чем проблема? Код: c# 1.
надо наверное как-то ограничить количество, если будет много элементво в списке? Если скажем 1000... пул потоков ограничит. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 18:26 |
|
Как распараллелить в данном случае?
|
|||
---|---|---|---|
#18+
да, еще, запрос шар я бы сделал асинхронным. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 18:27 |
|
Как распараллелить в данном случае?
|
|||
---|---|---|---|
#18+
Arm79Winnipuh, Не надо. ок, еще пара вопросов: 1.надо ли вместо List<> использовать что-то из Concurrent Collection? поскольку придется каждой задаче писать полученные даные обратно 2. как проверить все ли задачи завершились? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 18:28 |
|
Как распараллелить в данном случае?
|
|||
---|---|---|---|
#18+
netivanда, еще, запрос шар я бы сделал асинхронным. что значит асинхронным? begin invoke? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 18:30 |
|
Как распараллелить в данном случае?
|
|||
---|---|---|---|
#18+
WinnipuhArm79Winnipuh, Не надо. ок, еще пара вопросов: 1.надо ли вместо List<> использовать что-то из Concurrent Collection? поскольку придется каждой задаче писать полученные даные обратно 2. как проверить все ли задачи завершились? 1) Нет, достаточно IEnumerable. Менеджер сам раскидает. Или можно самому раскидывать, см. OrderablePartitioner (но я бы не заморачивался) 2) Parallel.ForEach сам подождет завершения всех задач ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 18:44 |
|
Как распараллелить в данном случае?
|
|||
---|---|---|---|
#18+
Arm79Winnipuhпропущено... ок, еще пара вопросов: 1.надо ли вместо List<> использовать что-то из Concurrent Collection? поскольку придется каждой задаче писать полученные даные обратно 2. как проверить все ли задачи завершились? 1) Нет, достаточно IEnumerable. Менеджер сам раскидает. Или можно самому раскидывать, см. OrderablePartitioner (но я бы не заморачивался) 2) Parallel.ForEach сам подождет завершения всех задач По п.2. : сделал первый вариант, все бы хорошо, но UI после нажатия на кнопку морозится. Как бы сделать, чтобы не замораживался гуй? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 18:54 |
|
Как распараллелить в данном случае?
|
|||
---|---|---|---|
#18+
спасибо! сделал так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 19:14 |
|
Как распараллелить в данном случае?
|
|||
---|---|---|---|
#18+
Winnipuh, чего-то task.Wait(); смущает. Ведь там у вас в цикле все выполнится и вернется результат, который передадите в Гуй в его контексте исполнения... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 19:27 |
|
Как распараллелить в данном случае?
|
|||
---|---|---|---|
#18+
WinnipuhКак бы сделать, чтобы не замораживался гуй? Я не великий специалист по ГУЙ, но краем уха слышал, что во избежание проблем с ним юзают BackgroundWorker А вот в нем можно и Parallel.ForEach, и PLINQ Конкретно в вашем случае я бы тасками не заморачивался. ЗЫ На случай зависания обработки посмотрите CancellationToken и CancellationTokenSource ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2013, 21:00 |
|
|
start [/forum/topic.php?fid=20&gotonew=1&tid=1403618]: |
0ms |
get settings: |
14ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
87ms |
get topic data: |
13ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 18ms |
total: | 221ms |
0 / 0 |