小编YB *_* Yu的帖子

在没有await关键字的情况下调用async方法究竟发生了什

我有一个Web服务器,并有定期作业合并和发送记录(许多请求日志).

Task.Run(() =>
{
    while (true)
    {
        try
        {
            MergeAndPutRecords();
        }
        catch (Exception ex)
        {
            Logger.Error(ex);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

MergeAndPutRecords函数中,有代码合并记录和异步函数返回任务发送记录.(实际上它是亚马逊Kinesis Firehose的PutRecordBatchAsync.)

如果我在没有await关键字的情况下调用该函数会发生什么?函数是否在单独的线程上运行?这里说它不是.那么什么是返回任务手段?这里说async方法没有等待关键字的意思

  1. 在当前线程上启动异步方法.忽略所有结果(包括例外).

然后同时处理我的定期作业和PutRecordBatchAsync?我知道asynchronouse和concurrent是不同的.但是没有await关键字,它们在同一个线程中.首先执行哪一个?我很困惑......

会有大量记录需要合并并实时发送.所以我认为它必须同时执行..

c# asynchronous async-await

9
推荐指数
1
解决办法
4964
查看次数

标签 统计

async-await ×1

asynchronous ×1

c# ×1