Асинхронность в C#
Здравствуйте, все те, кто наткнулся на этот вопрос. У меня возникла проблема при создании консольного приложения с использованием асинхронности. Мне нужно чтобы цикл с отсчётом от нуля до ста выполнялся в методе по мере выполнения другого кода в Main'е и чтобы в этот цикл можно было заглядывать и при каждом вызове этого метода, цикл не начинался заново, а продолжал выполнять свою работу дальше. Кто понимает в этой сфере, помогите пожалуйста.
Нужно более конкретное описание задачи. Так непонятно.
Возможно, тут подойдёт не асинхронность (async/await), а функция-генератор. См. metanit.com/sharp/tutorial/4.12.php
Так а причем тут асинхронность. Тут скорее параллельное выполнение кода и переключение между потоками. Вам нужно синхронизировать потоки между собой, например при помощи AutoResetEvent.
либо можно как предложил Мазай, через yield return (это просто и безопасно)
либо есть несколько иной вариант и он с потоками напрямую связан, однако это требует внимания и терпения (можно и до BSoD-а дойти, ой простите бевотно-голубого).
Основная концепция это блокировка одного потока и ожидание другого, пока тот не подаст сигнал. и тут есть несколько вариантов (это не полный список)
1. Mutex
2. Spinner
3. Semaphore
4. EventMachine
все это можно найти тут https://docs.microsoft.com/en-us/dotnet/standard/threading/ но осторожнее, инфа требует всасывания, а не прочтения понимания, а база по потокам должна уже быть хорошо освоенной