首页 > 技术文章 > 构造函数需要异步操作,工厂模式创建异步构造函数

wesson2019-blog 2020-09-03 23:31 原文

多应用于客户端。

if (_instance == null)
{
    _instance = await MyAsyncClass.CreateAsync();
}
_instance.Test();
class MyAsyncClass
{
    private MyAsyncClass() { }
    private async Task<MyAsyncClass> InitializeAsync()
    {
        await Task.Delay(TimeSpan.FromSeconds(2));
        return this;
    }
    public static Task<MyAsyncClass> CreateAsync()
    {
        var result = new MyAsyncClass();
        return result.InitializeAsync();
    }

    public void Test()
    {
        Console.WriteLine("需要构造初始化完成才能操作");
    }
}

推荐阅读