In a vacuous sense, but in practice you almost always use asynchronous code to achieve concurrency.
The canonical Microsoft tutorial on async spends about half its time talking about hiw to make your code concurrent to take advantage of async.
https://docs.microsoft.com/en-us/dotnet/csharp/programming-g...