gpt4 book ai didi

c# - 如何为操作实现忽略/重试/取消模式?

转载 作者:行者123 更新时间:2023-11-30 19:20:28 28 4
gpt4 key购买 nike

我有一个由 C#.NET 4.0 开发的两层 Windows 窗体应用程序。在这个应用程序中,我读取文件内容并在数据访问层中创建实体列表,并将其返回到 GUI 层以在 GridView 中显示。在我当前的逻辑中,如果文件中的一行已损坏或格式错误(我无法从中创建实体)或任何其他异常,我将抛出异常并中止该过程。现在,我如何实现忽略/重试/取消模式?我的意思是显示忽略/重试/取消对话框并执行用户想要的任何操作的最佳方式是什么(例如,忽略当前行并转到下一行,取消进程,或重试当前失败的行读取)?有什么模式吗?

最佳答案

我在提供此类选项时采用以下模式:

DialogResult result = DialogResult.Retry;
while (result == DialogResult.Retry) {
try {
DoProcess();
break;
}
catch {
result = MessageBox.Show(errorMessage, caption, MessageBoxButtons.AbortRetryIgnore);
if (result == DialogResult.Abort) throw;
}
}

如果用户选择重试,循环将再次运行。如果用户单击中止,将抛出异常(在链的更上游被捕获,从而中止其余操作)。忽略将导致循环退出而不抛出异常。我想不出更简洁的方法来做到这一点。

关于c# - 如何为操作实现忽略/重试/取消模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6120210/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com