如何在c#中实现一步一步的按钮?

Kam*_*ran 3 c# algorithm winforms

我在c#中实现了一个算法,我想为它制作一个gui,在我的gui中我想放一个按钮,任何点击gui显示算法向前一步,所以我想我需要放一些像暂停?我的代码中的语句,任何点击它都可以恢复.我该怎么做?还是有任何其他建议来实现这个想法?

Jon*_*eet 15

听起来你真的需要将你的算法变成状态机 - 而不是主动"暂停"它,你会主动"推进"它.

您可能会发现迭代器块很有用......如果您的算法目前只在一种方法中,您可以更改它以yield return在每个逻辑步骤的末尾插入一个语句,返回当前状态的一些指示.

这不是迭代器块的完全正常使用,但它可能是这里最简单的方法.您的UI将GetEnumerator在开始时调用一次,然后MoveNext()每次单击该按钮(然后访问该Current属性以获取当前状态).完成后不要忘记处理迭代器.