这次我有一个关于C#中异步调用的问题。
所以我有一台带有ASP.Net Core 2.1 MVC的服务器。
在此服务器上,我有以下方法:
public async Task<IdentityResult> UpdateAsync(TEntity entity)
{
var replaceResult = await _collection.ReplaceOneAsync(x => x.Id == entity.Id, entity);
if(replaceResult.ModifiedCount == 0)
{
return IdentityResult.Failed();
}
return IdentityResult.Success;
}
此方法由另一种方法(UpdateLicenseAsync)调用,而该方法的调用方式类似于
var identityResult = await UpdateLicenseAsync(parameters)
以下是我的问题,这两种UpdateLicenseAsync实现之间的区别是什么? 版本1:
public Task<IdentityResult> UpdateLicenseAsync<TLicense>(TTenant tenant, TLicense license, DateTime expirationDate, bool multiTenants) where TLicense : LicenseEntity
{
var tenantLicense = tenant.TenantLicenses.Find(x => x.LicenseKey == license.Key);
if (tenantLicense == null) return Task.FromResult(IdentityResult.Failed(new IdentityError { Code = IdentityResultErrorCodesConstants.TENANT_LICENSE_DOES_NOT_EXISTS }));
// ensure Time of date is 00:00 by using only Date part
tenantLicense.ExpirationDate = expirationDate.Date;
tenantLicense.MultiTenant = multiTenants;
return _collection.UpdateAsync(tenant);
}
版本2:
public async Task<IdentityResult> UpdateLicenseAsync<TLicense>(TTenant tenant, TLicense license, DateTime expirationDate, bool multiTenants) where TLicense : LicenseEntity
{
var tenantLicense = tenant.TenantLicenses.Find(x => x.LicenseKey == license.Key);
if (tenantLicense == null) return IdentityResult.Failed(new IdentityError { Code = IdentityResultErrorCodesConstants.TENANT_LICENSE_DOES_NOT_EXISTS });
// ensure Time of date is 00:00 by using only Date part
tenantLicense.ExpirationDate = expirationDate.Date;
tenantLicense.MultiTenant = multiTenants;
return await _collection.UpdateAsync(tenant);
}
他们在做同样的工作吗?其中一个比另一个“更快”吗?一个版本比另一个版本好吗?
在此先感谢您的帮助:)