gpt4 book ai didi

c# - 隐式等待?

转载 作者:太空宇宙 更新时间:2023-11-03 13:06:46 24 4
gpt4 key购买 nike

我有一个方法 Create :

public async Task<MyObject> Create(string str1, string str2)
{
// Check to see if a MyObject can be created in the database.
if (!await CanCreate(str1, str2))
{
return null;
}

// Create the object.
var myObj = new MyObject
{
Created = DateTime.Now.Date,
First = str1,
Second = str2
};

// Log this event.
_loggingService.Log(myObj, LogType.Created);

// Return the created MyObject.
return _repository.CreateAsync(myObj));
}

方法CanCreate(string, string)返回 Task<bool> .

方法Log(MyObject, LogType)返回 Task .

方法CreateAsync(MyObject)返回 Task<MyObject> .


注意 CanCreate正在等待 LogCreateAsync不是。那么我的问题是,在我的例子中,当Create返回并像这样等待:

 var result = await _service.Create("abc", "def");

Log Create 上的 await 调用也在等待?

最佳答案

is Log also awaited by the await call on Create?

不,不是。 Log 将通过并且它产生的封装任务将被忽略(连同它传播的任何异常)。因为您最终从 CreateAsync 返回任务,所以会等待。

关于c# - 隐式等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30550541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com