run `withContext` in a bound thread