C# 卡利伯恩:协同程序,是什么?

C# 卡利伯恩:协同程序,是什么?,c#,caliburn.micro,C#,Caliburn.micro,是一个C#应用程序框架 有“协同程序”() 下面是来自的示例代码 我读了很多次文档,但我一点也不懂协同程序。 在我看来,这只是一个简单的4x异步任务。对不起,我根本不理解协同程序的好处 请解释一下它的好处和例子……在我看来,协同程序是一种可以启动、暂停、恢复和停止的方法 如果挂起协程,则方法的状态将被保存,您可以稍后从保存的状态恢复该方法并执行下一行 在我看来,协同程序是一种可以启动、暂停、恢复和停止的方法 如果挂起协程,则方法的状态将被保存,您可以稍后从保存的状态恢复该方法并执行下一行 在上

是一个C#应用程序框架

有“协同程序”()

下面是来自的示例代码

我读了很多次文档,但我一点也不懂协同程序。 在我看来,这只是一个简单的4x异步任务。对不起,我根本不理解协同程序的好处


请解释一下它的好处和例子……

在我看来,协同程序是一种可以启动、暂停、恢复和停止的方法
如果挂起协程,则方法的状态将被保存,您可以稍后从保存的状态恢复该方法并执行下一行 在我看来,协同程序是一种可以启动、暂停、恢复和停止的方法
如果挂起协程,则方法的状态将被保存,您可以稍后从保存的状态恢复该方法并执行下一行

在上面的示例代码中,我知道如何“启动”。但如何“暂停”或“恢复”?如果我想在“TaskHelper”之前停止代码,怎么做?“ResultCompletionEventArgs”有帮助吗?在上面的示例代码中,我知道如何“启动”。但如何“暂停”或“恢复”?如果我想在“TaskHelper”之前停止代码,怎么做?“ResultCompletionEventArgs”有帮助吗??
        yield return new VisualStateResult("Loading");
        yield return TaskHelper.Delay(2000).AsResult();
        yield return new VisualStateResult("LoadingComplete");
        yield return new MessageDialogResult("This was executed from a custom IResult, MessageDialogResult.", "IResult Coroutines");