В вашем конструкторе вы вызываете метод async
, не ожидая его.В вашем конструкторе задача loginAsync
не соревновалась, но выполнение текущего метода продолжается до завершения вызова.
public Login() {
loginAsync();
}
Не помещайте код инициализации в свой конструктор, вместо этого сделайте это следующим образомниже:
public class Foo
{
public Foo() {}
public async Task LoginAsync() { ... }
}
var obj = new Foo();
await obj.LoginAsync();
При таком подходе поток не блокируется, и он лучше.