Q# 聚合异常错误

Q# Aggregate Exception Error

在使用 Q# 编码时,使用以下代码片段我收到聚合异常错误(似乎发生了一个或多个错误)。

此特定代码片段有什么问题,Q# 文档的哪些部分与此问题有关?

代码片段:

            // Try initial values
            Result[] initials = new Result[] { Result.Zero, Result.One };
            foreach (Result initial in initials)
            {
                BellTest.Run(sim, 1000, initial).Wait();
                var res = BellTest.Run(sim, 1000, initial).Result;
                var (numZeros, numOnes, agree) = res;
                System.Console.WriteLine(
                    $"Init:{initial,-4} 0s={numZeros,-4} 1s={numOnes,-4} agree={agree,-4}");
            }

看看你的 innerException 问题是空引用异常。 调试您的代码并确保没有任何内容为空。

BellTest, sim, intinial or BellTest.Run(sim,1000,intinial)

每次调用 Q# 操作都是异步的,因为在实际硬件上执行也是异步的,因此每次调用 Run 都必须等待执行完成才能执行另一个量子操作。有多种方法可以等待异步 Task 完成,包括使用 Task.

await keyword, the Wait(), or retrieving the Result

在这种特殊情况下,您调用 BellTest.Run 两次,第二次不会等待第一次完成。如果您将 Wait() 添加到第一个 Run,Exeption 将消失,例如:

    BellTest.Run(sim, 1000, initial).Wait();