我有一个类构造函数,例如:
AuthenticationService = new AuthenticationService();
然而,这种“变量初始化”可能需要几秒钟,有时父类可能仍然不需要它。我怎样才能使用并行编程来初始化它,并且仍然让“父亲”类继续,只有在他需要使用它并且对象 AuthenticationService 仍未准备好时才等待。
我怎样才能做到这一点?
我的解决方案(感谢 Jon Skeet)
private Task<AuthenticationService> authTask;
public AuthenticationService AuthenticationService
{
get
{
return authTask.Result;
}
}
public MyConstructor(){
authTask = Task.Factory.StartNew(() => new AuthenticationService());
}