Q#聚合异常错误

时间:2018-07-30 19:18:58

标签: c# q#

当使用Q#进行编码时,使用以下代码片段,我得到一个汇总异常错误(似乎发生了一个或多个错误)。

code snippet

此特定代码段有什么问题,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}");
            }

2 个答案:

答案 0 :(得分:3)

每次对Q#操作的调用都是异步的,因为在实际硬件上的执行也将是异步的,因此,每次调用Run时,必须等待执行完成才能执行另一个量子操作。等待异步Task完成的方式有多种,包括使用await关键字,Wait()或检索Task的{​​{3}}。

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

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

答案 1 :(得分:0)

看看你的innerException 问题是空引用异常。 调试您的代码,并确保所有内容都不为空。

  

BellTest,sim,intinial或BellTest.Run(sim,1000,ininial)