Как правильно создать несколько потоков с асинхронными методами?

Мне нужно сделать 2 потока в которых запустить асинхронно методы, как это лучше всего сделать? На данный момент я могу придумать только одно решение:

new Thread(async () => await MyAsyncMethod1()).Start();
new Thread(async () => await MyAsyncMethod2()).Start();

Но смогу ли я отлавливать исключения в таких методах, ведь async () - это void метод, а следовательно я не смогу поймать исключение, если оно там будет. Или я ошибаюсь в суждении?


Ответы (1 шт):

Автор решения: Pavel Mayorov

Вы не можете так просто запустить асинхронный метод в потоке, первый же оператор await остановит поток. Потоки - они для синхронных задач, для асинхронных используйте Task.Run

Если вам совсем-совсем нужен выделенный поток - гуглите как писать однопоточный планировщик задач.

→ Ссылка