Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как написать такой async алгоритм ? / 7 сообщений из 7, страница 1 из 1
28.02.2016, 15:57
    #39180824
Awaiter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать такой async алгоритм ?
Подскажите как, в целом, сделать следующий алгоритм:

Предположим имеем консольное приложение:
Нужно запустить разом 5 задач (тасков), после отработки каждой (могут завершится за разное время) вывести об этом текст в консоль:
Код: c#
1.
2.
3.
Task3 done
Task2 done
Task5 done



1. Как я понимаю Task.WaitAll не подойдет - нам нужно быстро обрабатывать результаты по готовности.

2.Также не подойдет и Task.WaitAny наверное ?
Разве что, каждый раз пересобирать массив тасков исключая те, что уже завершили, и снова передавая в Task.Waitany ? В целом думаю это реализуемо, но эффективно ли ?

3. А может заюзать Parallel.foreach ?
4. Может подойдет IObservable, но не выйдет ли так слишком сложно ?

Что скажете ?
...
Рейтинг: 0 / 0
28.02.2016, 16:15
    #39180829
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать такой async алгоритм ?
Добавь вывод к конец задачи и жди WaitAll. Или к каждому таску создай еще один с выводом и делай цепочку, чтобы вывод произошел после расчета.
...
Рейтинг: 0 / 0
28.02.2016, 16:32
    #39180833
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать такой async алгоритм ?
AwaiterЧто скажете ?
Ничего не понял. Если ничего не делать, то оно так и выведет:

Код: c#
1.
2.
3.
Task3 done
Task2 done
Task5 done
...
Рейтинг: 0 / 0
28.02.2016, 16:43
    #39180837
Awaiter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать такой async алгоритм ?
Dima T,

Дело усложнится, если появится синхронизационный контекст. Как тогда быть ? если нужно будет этот текст писать в форме ?
...
Рейтинг: 0 / 0
28.02.2016, 19:48
    #39180952
L.Otujktd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать такой async алгоритм ?
Awaiter,

Можно завязаться на один общий на все таски Mutex в конце task-функции и синхронизироваться на нем.
...
Рейтинг: 0 / 0
28.02.2016, 22:41
    #39180997
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать такой async алгоритм ?
Awaiter,

ContinueWith ?
...
Рейтинг: 0 / 0
29.02.2016, 05:24
    #39181037
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать такой async алгоритм ?
в чем конкретная проблема синхронизации то?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как написать такой async алгоритм ? / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]