Csharp/C#教程:从构造函数调用的异步方法分享


从构造函数调用的异步方法

我有一个问题,我在构造函数中调用async方法,如何解决或有一个很好的解决方案,这里是一个例子

public Constructor() { Value = PopulateValueFromDB(); //async method CalculateInDB(); // async method } public async Task PopulateValueFromDB() { ... do some async calls return await ... } public async Task CalculateInDB() { ... return await ... } 

基本上在构造函数中我有一个错误,因为我不能使用等待那里,我不能使它异步。

对于CalculateInDB我可以使它返回无效,然后我解决它的问题,虽然我读到某处返回void不是很好的解决方案。

关于PopulateVlaue方法……我必须返回一些东西……

那么是否有一个解决方案,我不应该使用那些方法然后使它们同步而不是异步?

我有关于async构造函数的博客文章,涵盖了各种方法。 如果可能,我建议你使用工厂模式,如下:

 private Constructor() { } private InitializeAsync() { Value = await PopulateValueFromDBAsync(); await CalculateInDBAsync(); } public static async Task Create() { var ret = new Constructor(); await ret.InitializeAsync(); return ret; } 

这是使用旧技术的时候了!

ThreadPool.QueueUserWorkItem。

干杯 –

上述就是C#学习教程:从构造函数调用的异步方法分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/987359.html

(0)
上一篇 2021年12月22日
下一篇 2021年12月22日

精彩推荐