问题描述
在我的MVVM应用程序中,当激活ViewModel时,将启动一个Task,该Task建立一个网络连接,并且可能需要一些时间才能完成。此任务是可扩展的:
private async Task ConnectAsync(CancellationToken cancellationToken = default)
{
...
}
我正在使用IActivatableViewModel
这样在ViewModel激活中启动它:
// Constructor:
public SomeViewModel(...)
{
this.WhenActivated(disposable => {
Observable.StartAsync(ConnectAsync);
});
}
现在,当在任务完成之前停用ViewModel时,建议取消该长期运行任务的方法是什么?
我想到了这个
this.WhenActivated(disposable => {
Observable.StartAsync(ConnectAsync).Subscribe().DisposeWith(disposable);
});
这是正确的解决方案还是有更好的解决方案?
提前谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)