相关疑难解决方法(0)

为什么EF 6教程使用异步调用?

关于如何将EF 6与MVC 5一起使用的最新EF教程似乎倾向于使用对数据库的asych调用,如:

Department department = await db.Departments.FindAsync(id);
Run Code Online (Sandbox Code Playgroud)

这是新标准/最佳做法吗?

我不确定ASP.NET MVC的这种开发风格有什么好处.

有人可以评论这种模式,这是MS推广的新标准吗?

c# asp.net-mvc entity-framework async-await

17
推荐指数
2
解决办法
7284
查看次数

我们应该默认切换到使用异步I/O吗?

利用异步I/O的优点,它现在很容易编码和编写(使用Await和TAP方法),我想知道,如果我们应该默认使用async,只需要在需要时使用sync来调整性能.

异步I/O释放调用线程,并允许在等待结果时执行其他操作.另一方面,异步I/O比同步慢一点.

为了实施响应式UI,WinRT设计人员认为提供仅异步方法是可以接受的.

内部的AFAIK Windows文件I/O是异步的.天真地看着这个,我不清楚为什么.NET中的异步文件I/O应该比同步慢.

我通常喜欢简单性和健壮性,只在必要时调整性能.在过去,我们默认使用同步,除了调用某些服务以及手机等平台强制执行异步.我们很少使用异步调整.

.net asynchronous task-parallel-library

12
推荐指数
2
解决办法
3723
查看次数

使用Async和Await的ASP.NET C#5异步Web应用程序

在研究了异步Web开发的概念之后,特别是从这个源开始,我创建了一个示例应用程序来证明这个概念.

该解决方案由2个ASP.NET Web API应用程序组成.第一个是模拟的慢端点; 它在返回一个名为Student的自定义类之前等待1000毫秒:

 public IEnumerable<Student> Get()
    {
        Thread.Sleep(1000);
        return new List<Student> { new Student { Name = @"Paul" }, new Student { Name = @"Steve" }, new Student { Name = @"Dave" }, new Student { Name = @"Sue" } };
    }
Run Code Online (Sandbox Code Playgroud)

这是学生班:

public class Student
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

此端点托管在localhost:4002上的IIS 7中.

第二个应用程序使用2个端点联系第一个,一个是同步的,另一个是异步的:

public IEnumerable<Student> Get() {
        var proxy = WebRequest.Create(@"http://localhost:4002/api/values");

        var response = proxy.GetResponse();
        var reader = new StreamReader(response.GetResponseStream());

        return …
Run Code Online (Sandbox Code Playgroud)

c# asp.net multithreading asynchronous async-await

10
推荐指数
1
解决办法
4752
查看次数

Awaiter(GetAwaiter)和ContinueWith有什么区别

在.net 4.0中,我经常使用Task.ContinueWith.但后来我发现"task.GetAwaiter()"似乎有着相同的目的.

有什么不同?

.net multithreading .net-4.0

5
推荐指数
1
解决办法
822
查看次数