C# 如何使用输出参数实现azure异步函数
我实现了Azure函数 我有下一个案例:C# 如何使用输出参数实现azure异步函数,c#,azure,azure-functions,azure-cosmosdb,azure-blob-storage,C#,Azure,Azure Functions,Azure Cosmosdb,Azure Blob Storage,我实现了Azure函数 我有下一个案例: 当某物上传到blob时(输入blob为触发器) 过程逻辑 将某些内容保存到输出blob(输出为返回值) 将其他内容保存到dynamo db集合(输出参数) 将其他内容保存到另一个dynamo db集合(输出参数) 这很好用。问题在于我不能利用异步调用的优势。原因很清楚,因为带有输出参数的方法不能是异步方法 如何利用异步调用的优势实现具有多个输出的azure函数 谢谢我们可以在异步方法中使用 仅当成功的函数执行总是导致返回值传递到输出绑定时,才使用返回值
out dynamic processedSecond
更改为IAsyncCollector processedFirst
并使用wait processedFirst.AddAsync(someObject)代码>稍后
请参见的示例
[FunctionName("myFunction")]
[return: Blob("images-text-out/{name}.txt")]
public static string Run([BlobTrigger("samples-workitems/{name}", Connection = "StorageConnection")]Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob myBlob,
string name,
string blobTrigger,
[CosmosDB(
databaseName: "my-db-cosmos",
collectionName: "CollectionA",
ConnectionStringSetting = "CosmosDBConnection")] out dynamic processedFirst,
[CosmosDB(
databaseName: "my-db-cosmos",
collectionName: "CollectionB",
ConnectionStringSetting = "CosmosDBConnection")] out dynamic processedSecond,
ILogger log,
ExecutionContext context)
{
// . . .
myBlob.DownloadToStreamAsync(memoryStream).Wait();
// . . .
}