如果在C#中执行函数超过一定时间,如何重新加载函数?

问题描述 投票:1回答:1

我正在尝试随机生成大小为n的数独。

因此,我编写了函数:generateSudoku(int blocksize)

但是,这一代有时会失败,因为它是完全随机的,并且可能<。我做了一些检查功能来防止这些事件。

我认为有

50%几率

会生成一个错误的2x2数独,当它失败时,函数会无限期运行所以,我想知道C#中是否有某些函数检测给定的函数

超过一定的执行时间

,以及是否有某些函数可以重新加载函数。] >例如,我想在我的代码中添加如下内容:

while ( generateSudoku(int blocksize).Time() > threshold ){ generateSudoku(int blocksize).Reload() }

我知道写这个绝对不正确,但是我不知道如何更好地解释它。

您能帮我吗?有任何线索或主张吗?

谢谢你!

我正在尝试随机生成大小为n的数独。因此,我写了一个函数:generateSudoku(int blocksize)但是,这一代有时会失败,因为它是完全随机的,并且可能会发生...

c# function time reload sudoku
1个回答
0
投票
您可以通过使用线程或任何种类的异步逻辑来实现。有效地,您正在寻找的是已完成代码,用于监视您的执行情况,而另一项代码是您的工作。

如果您可以修改功能,则使用如下异步:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/cancel-async-tasks-after-a-period-of-time

© www.soinside.com 2019 - 2024. All rights reserved.