首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >协程的‘'finally’操作

协程的‘'finally’操作
EN

Stack Overflow用户
提问于 2013-01-21 02:05:44
回答 1查看 179关注 0票数 1

假设我有一个协程,它使用CM文档中包含的Loader实现,并使用它在页面上显示繁忙指示器

现在假设用户试图向数据存储中添加一个已经存在的对象--在协程中,“save”操作自然会失败,这意味着协程将取消执行

如果发生这种情况,枚举器永远不会到达我的Loader.Hide()调用来隐藏繁忙指示器-我想知道是否已经有了一种机制,即使协程失败也允许一些IResult实现执行?

示例:

代码语言:javascript
复制
    public IEnumerator<IResult> SaveData()
    {
        yield return Framework.Coroutines.Loader.Show("Saving Data");
        yield return new Framework.Coroutines.SaveOperation(SomeObject);
        yield return Framework.Coroutines.Loader.Hide();
    }

如果协程在第二步中正常失败,则繁忙指示器仍然显示在屏幕上,使用户没有机会纠正其错误并尝试重新保存(并停止与底层UI的任何交互!)

我可以只扩展协程的实现,让迭代器有一个标志,表明当出现错误时,它们是否被允许执行-只是想知道是否有人已经这样做了,或者它是否是我遗漏的框架的一部分?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-27 18:25:04

您也可以使用Caliburn.Micro Action Filters。参见SetBusyAttribute。属性的声明式风格是透明的,并且使代码更易于管理。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14427525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档