假设有一个像这样的方法的服务库
public async Task<Person> GetPersonAsync(Guid id) {
return await GetFromDbAsync<Person>(id);
}
Run Code Online (Sandbox Code Playgroud)
遵循SynchronizationContext的最佳实践最好使用
public async Task<Person> GetPersonAsync(Guid id) {
return await GetFromDbAsync<Person>(id).ConfigureAwait(false);
}
Run Code Online (Sandbox Code Playgroud)
但是当你只有一个操作(我认为)最好直接返回任务.请参阅异步方法的结尾,我应该返回还是等待?
public Task<Person> GetPersonAsync(Guid id) {
return GetFromDbAsync<Person>(id);
}
Run Code Online (Sandbox Code Playgroud)
在最后一种情况下,您不能使用ConfigureAwait(false),因为不等待该方法.
什么是最好的解决方案(以及为什么)?
在 Global.asax 中,我们有一个名为 MvcApplication 的 System.Web.HttpApplication 类型的类,它代表应用程序,我们可以在其中处理各种事件。
我对 Application_Error 处理程序感兴趣。在这个处理程序中,我们可以使用类 MvcApplication 的所有属性。
-1-
'(MvcApplication)sender' 和 'this' 是同一个对象总是正确的吗?
protected void Application_Error(object sender, EventArgs e)
{
var httpApp = (MvcApplication)sender;
var equality1 = httpApp == this; // always true?
}
Run Code Online (Sandbox Code Playgroud)
-2-
获得错误的最佳方法是什么?以下示例返回相同的错误?
Exception ex0 = this.Context.Error;
Exception ex1 = httpContext.Error;
Exception ex2 = Server.GetLastError();
var equality3 = ex1 == ex2; // true?
Run Code Online (Sandbox Code Playgroud)