Что такое Task-based Asynchronous Pattern (TAP)?
Асинхронная модель на основе задач (TAP) основана на типах System.Threading.Tasks.Task и System.Threading.Tasks.Task<TResult> пространства имен System.Threading.Tasks, которые используются для представления произвольных асинхронных операций.TAP — это рекомендуемый асинхронный шаблон для разработки новых компонентов.
Более подробно на MSDN
Описание программы
Консольное приложение на языке программирования C# (Visual Studio 2015) представляет собой пример использования Task-based Asynchronous Pattern (TAP). Программа параллельно обрабатывает продажи фруктов и овощей. Для синхронизации задания используется Task.WaitAll(). Содержит комментарии на английском языке. Данный пример можно использования для изучения современного паттерна асинхронного программирования (TAP).
Пример кода
/// <summary> /// List of actions (delegate void Method()) which should be run in a separate thread /// </summary> /// <param name="simulators"></param> public void Start(params Action [] simulators) { List<Task> saleTasks = new List<Task>(3); foreach (var simulator in simulators) { Task saleTask = Task.Factory.StartNew(simulator); // create & start a new task saleTasks.Add(saleTask); // add task to the colleciton } // please, comment this string and run the app to see difference Task.WaitAll(saleTasks.ToArray()); // wait all tasks to be finished Console.WriteLine(); Console.WriteLine("FINISH. All fruits and vegetables are sold!"); Console.WriteLine(); }
Содержание файлов
- SalesEmulator (demo).zip - испольняемый файл программы
- SalesEmulator (source).zip - исходные код в Visual Studio 2015 на C#
dmytro