|
Как написать такой async алгоритм ?
|
|||
---|---|---|---|
#18+
Подскажите как, в целом, сделать следующий алгоритм: Предположим имеем консольное приложение: Нужно запустить разом 5 задач (тасков), после отработки каждой (могут завершится за разное время) вывести об этом текст в консоль: Код: c# 1. 2. 3.
1. Как я понимаю Task.WaitAll не подойдет - нам нужно быстро обрабатывать результаты по готовности. 2.Также не подойдет и Task.WaitAny наверное ? Разве что, каждый раз пересобирать массив тасков исключая те, что уже завершили, и снова передавая в Task.Waitany ? В целом думаю это реализуемо, но эффективно ли ? 3. А может заюзать Parallel.foreach ? 4. Может подойдет IObservable, но не выйдет ли так слишком сложно ? Что скажете ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2016, 15:57 |
|
Как написать такой async алгоритм ?
|
|||
---|---|---|---|
#18+
Добавь вывод к конец задачи и жди WaitAll. Или к каждому таску создай еще один с выводом и делай цепочку, чтобы вывод произошел после расчета. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2016, 16:15 |
|
Как написать такой async алгоритм ?
|
|||
---|---|---|---|
#18+
AwaiterЧто скажете ? Ничего не понял. Если ничего не делать, то оно так и выведет: Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2016, 16:32 |
|
Как написать такой async алгоритм ?
|
|||
---|---|---|---|
#18+
Dima T, Дело усложнится, если появится синхронизационный контекст. Как тогда быть ? если нужно будет этот текст писать в форме ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2016, 16:43 |
|
Как написать такой async алгоритм ?
|
|||
---|---|---|---|
#18+
Awaiter, Можно завязаться на один общий на все таски Mutex в конце task-функции и синхронизироваться на нем. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2016, 19:48 |
|
Как написать такой async алгоритм ?
|
|||
---|---|---|---|
#18+
Awaiter, ContinueWith ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2016, 22:41 |
|
|
start [/forum/topic.php?fid=20&tid=1400771]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 168ms |
0 / 0 |