It is important to understand that async methods like SumPageSizesAsync do not run on their own thread. In fact if you write an async method without any await’s in it, it will be completely synchronous: public async Task<int> TenToSevenAsync() { Thread.Sleep(10000); return 7; } Public Async Function TenToSevenAsync() As Task(Of Integer) Thread.Sleep(10000) Return 7 End