小编zav*_*kas的帖子

Task.Run和Func <>

如何运行返回值并获取参数的任务?我看到有一个重载方法,Task.Run<TResult>(Func<TResult>)但我如何在那里传递参数?

c# windows-runtime .net-4.5

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

Azure 持久函数 - CallActivityAsync 时的 InvalidOperationException

我正在尝试 Azure Durable 功能。目前,我在InvalidOperationException调用活动后进入编排功能。它抱怨检测到多线程执行。如果协调器功能之前从不受支持的异步回调中恢复,则可能会发生这种情况

有没有人遇到过这样的问题?我做错了什么?完整代码可以在GitHub找到

这是编排函数中的一行:

var res = await ctx.CallActivityAsync<int>("LengthCheck", "inputData");
Run Code Online (Sandbox Code Playgroud)

LengthCheckactivitiy功能是:

[FunctionName("LengthCheck")]
public static Task<int> Calc([ActivityTrigger] string input)
{
    var task = Task.Delay(TimeSpan.FromSeconds(5));
    task.Wait();
    return Task.FromResult(input.Length);
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪是:

ac6fd5cdd07a4dc9b2577657d65c4f27:函数“InpaintOrchestration(Orchestrator)”,版本“”失败并出现错误。原因:System.InvalidOperationException:检测到多线程执行。如果协调器功能之前从不受支持的异步回调中恢复,则可能会发生这种情况。

在 Microsoft.Azure.WebJobs.DurableOrchestrationContext.ThrowIfInvalidAccess()

在 Microsoft.Azure.WebJobs.DurableOrchestrationContext.d__47`1.MoveNext()

从上一个抛出异常的位置开始的堆栈跟踪结束

在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()

c# azure azure-functions azure-durable-functions

8
推荐指数
1
解决办法
2943
查看次数