Отменить выполнение фоновых заданий в Parallel.foreach [дубликат] ⇐ C#
Отменить выполнение фоновых заданий в Parallel.foreach [дубликат]
У меня есть параллельный foreach для нескольких вызовов API. API вернет некоторые данные, и я смогу их обработать. Допустим, из внешнего интерфейса я вызываю метод ProcessInsu, и вдруг пользователь передумал и перешел на другую страницу. (Должна быть кнопка «Очистить», и пользователь сможет выйти со страницы после нажатия кнопки «Очистить».) После вызова метода ProcessInsu он запустит API в фоновом режиме. Это пустая трата ресурсов, потому что пользователь уже передумал и выполняет другую работу. Мне нужен метод отмены фоновых заданий.
public async Task ProcessInsu (InsuranceAccounts InsuranceCompAccounts, string resourcesId) { ParallelOptions ParallelOptions = новый ParallelOptions(); ParallelOptions.MaxDegreeOfParallelism = Convert.ToInt32(Math.Ceiling((Environment.ProcessorCount * 0,75) * 2,0)); Parallel.ForEach(insuranceCompAccounts,parallelOptions, async (insuranceComp) => { ждут Processor.Process(resourceId,insuranceComp); //При цикле из каждого вызова будут звониться разные страховые компании. }); } Я попробовал этот пример кода и не смог с ним работать. Кто-нибудь из экспертов может помочь мне это сделать?
У меня есть параллельный foreach для нескольких вызовов API. API вернет некоторые данные, и я смогу их обработать. Допустим, из внешнего интерфейса я вызываю метод ProcessInsu, и вдруг пользователь передумал и перешел на другую страницу. (Должна быть кнопка «Очистить», и пользователь сможет выйти со страницы после нажатия кнопки «Очистить».) После вызова метода ProcessInsu он запустит API в фоновом режиме. Это пустая трата ресурсов, потому что пользователь уже передумал и выполняет другую работу. Мне нужен метод отмены фоновых заданий.
public async Task ProcessInsu (InsuranceAccounts InsuranceCompAccounts, string resourcesId) { ParallelOptions ParallelOptions = новый ParallelOptions(); ParallelOptions.MaxDegreeOfParallelism = Convert.ToInt32(Math.Ceiling((Environment.ProcessorCount * 0,75) * 2,0)); Parallel.ForEach(insuranceCompAccounts,parallelOptions, async (insuranceComp) => { ждут Processor.Process(resourceId,insuranceComp); //При цикле из каждого вызова будут звониться разные страховые компании. }); } Я попробовал этот пример кода и не смог с ним работать. Кто-нибудь из экспертов может помочь мне это сделать?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Очень медленное создание и инициализация заданий с использованием системы заданий Unity.
Anonymous » » в форуме C# - 0 Ответы
- 38 Просмотры
-
Последнее сообщение Anonymous
-