675得票4回答
为所有服务器端代码调用ConfigureAwait的最佳实践

当您拥有服务器端代码(即某个ApiController)并且您的函数是异步的 - 因此它们返回Task<SomeObject>时,是否认为每次等待调用的函数时应该使用ConfigureAwait(false)是最佳实践? 我曾经读到过这样做更具性能,因为它不必切换回原始线程上下文。...

617得票9回答
什么时候使用Task.Delay,什么时候使用Thread.Sleep?

何时使用 Task.Delay 而不是 Thread.Sleep 有哪些好的规则? 具体来说,是否存在最小值,可以提高一个方法的有效性和效率而不是另一个方法? 最后,由于 Task.Delay 在异步/等待状态机上引起上下文切换,因此使用它是否会产生开销?

556得票9回答
如果我的接口必须返回Task,那么最好的方式是什么来实现一个无操作的实现?

在下面的代码中,由于接口的缘故,类LazyBar 必须从其方法返回任务(出于论证目的不能更改)。如果LazyBar 的实现不同寻常,它可以快速且同步运行 - 那么从该方法返回无操作任务的最佳方法是什么? 我选择了下面的Task.Delay(0),但我想知道如果函数被频繁调用(为论证目的,假设...

532得票8回答
使用async/await处理多个任务

我正在使用一个完全异步的API客户端,也就是说,每个操作都返回Task或Task<T>,例如:static async Task DoSomething(int siteId, int postId, IBlogClient client) { await client.D...

528得票20回答
异步等待 Task<T> 完成并设置超时时间

我希望等待一个特定规则的Task&lt;T&gt; 执行完成: 如果它在X毫秒后还没有完成,我想向用户显示一条消息。 如果它在Y毫秒后仍未完成,我想自动请求取消。 我可以使用Task.ContinueWith异步等待任务完成(即在完成任务时安排要执行的操作),但是无法指定超时时间。 我可以使...

509得票4回答
WaitAll与WhenAll的区别

Task.WaitAll()和Task.WhenAll()这两个方法有什么区别?它们是Async CTP中的异步操作。您能提供一些示例代码来说明它们的不同用法吗?

492得票13回答
如何在C#中安全地调用异步方法而无需使用await

我有一个返回无数据的async方法: public async Task MyAsyncMethod() { // do some stuff async, don't return any data } 我正在从另一个方法中调用此函数并返回一些数据: public strin...

447得票5回答
如何告诉Moq返回一个Task?

我有一个声明接口的界面Task DoSomethingAsync(); 我正在使用MoqFramework进行我的测试:[TestMethod()] public async Task MyAsyncTest() { Mock&lt;ISomeInterface&gt; mock = n...

438得票8回答
任务和线程之间有什么区别?

在C# 4.0中,我们有Task在System.Threading.Tasks命名空间中。什么是Thread和Task之间的真正区别?我为了自己学习的缘故做了一些示例程序(参考MSDN)。Parallel.Invoke Parallel.For Parallel.ForEach 但是我有...

396得票12回答
等待多个具有不同结果的任务

我有三个任务:private async Task&lt;Cat&gt; FeedCat() {} private async Task&lt;House&gt; SellHouse() {} private async Task&lt;Tesla&gt; BuyCar() {} 在我的代码继...