Я настоятельно призываю вас использовать асинхронный подход, когда это возможно. Асинхронный вызов не обязательно создает поток, поэтому, придерживаясь асинхронной операции, вы можете уменьшить накладные расходы, связанные с потоками. Кроме того, потоки обычно сложнее разрабатывать и поддерживать.
Надеюсь, это поможет.