我有一个Azure函数,需要为SQL语句准备字符串。它的工作方式如下所示,但我是异步方法的新手,文档有点压倒性。我天真的本能是,如果返回的字符串来自异步方法,以防任何事情被共享,但是我的另一部分认为没有真正共享的东西会更好。有没有人可以解释3次电话之间的差异(包括一次等待)以及下面代码的任何潜在问题?
for context:这是在CosmosDB触发器上运行的Azure函数,用于展平文件并将其写入Azure SQL Server。 Cosmos中预期的更新次数约为每秒200次
<group name="RECORDS_PER_PURCHASER" isStartNewPage="true" keepTogether="true">
<groupExpression><![CDATA[$F{purchaserId}]]></groupExpression>
</group>
答案 0 :(得分:0)
除非你在SqlPrep
方法中进行某种I / O,否则从它返回Task<string>
是没有意义的。您的两种方法都会同步运行,但实际上firstSqlPrep
会产生一些与创建相关的开销,await
会导致Task
。
在代码中使用secondSqlPrep
。继续使用async
- await
进行数据库调用。