При создании новой задачи с использованием функции Task.Run()
требуется отметить метод как async
и использовать await
для возобновления потока программы?
Или можно просто вызвать Task.Run()
и забыть о новом потоке? Т.е., Task.Run()
просто возвращается, и новый поток запускается независимо.
Или можно просто вызвать Task.Run() и забыть о новом потоке?
Да, это возможно. Нет требования обрабатывать результирующую Task
или Task<T>
в С#. Это означает, что вам не нужно использовать async
или await
.
При этом задачи "стрелять и забывать" обычно являются признаком плохого дизайна. Как минимум, обычно рекомендуется обернуть Task
в то, что будет await
ее обработки и регистрации исключений.
async
- await
, можно использовать метод ContinueWith
для обработки результата задачи после ее завершения (или сбоя).
async
иawait
если нет.Task.Run()
кажется, путь.