小编jer*_*who的帖子

在任务中进行异步/等待数据库调用?

我们有一个WCF服务,它以下列方式处理传入的消息:

public bool ProcessMessage(string message)
{
    var returnValue = GetReturnValue();

    Task.Run(() => {
        //do some things with the message
        UpdateDatabase();
        SendRepliesOverNetwork();
    });

    return returnValue;
}
Run Code Online (Sandbox Code Playgroud)

为了尽可能多地处理消息,我们在此处添加了任务.我们希望尽快将returnValue返回给调用者,让Task完成它的工作.

我的问题:使用等待的异步数据库调用和/或使用异步方法进行网络回复是否有任何好处?

我很谨慎,因为我认为这可能会造成太多的上下文切换.我们已经看到该应用在负载下使用了100多个线程.

c# wcf asynchronous task-parallel-library async-await

2
推荐指数
1
解决办法
3691
查看次数