c# - 我应该如何处理 MVVM c# 应用程序中的多线程
问题描述
据我了解,我的应用程序应该在单线程(UI 线程)上运行,并且有两种情况,我可能希望在另一个线程上执行代码:
有长时间运行的工作,如系统/数据库访问等
- 这样的代码应该使用 async/await
- 当执行到实际的文件访问时,处理它的库应该有 use
.ConfigureAwait(false)
,它将在线程池的另一个线程上安排继续 - 然后应用程序代码中的其他一些等待(没有
.ConfigureAwait(false)
)将在 UI 线程上恢复
有来自其他线程(系统、设备等)的异步通知
- 这些应该使用调度程序在 UI 线程上安排
附加假设:
- 模型应该隔离多线程
- 视图模型中不应有调度程序调用
这个总结正确吗?
解决方案
推荐阅读
- angular - NgClass: if array contains item
- python - How to remove option selected with bs4?
- r - 如何从 shapefile 传单 R 访问多边形信息
- javascript - 异步函数执行顺序与常规函数执行顺序
- jenkins - Jenkins:在 groovy scrpt 中运行 curl 命令
- azure - Azure 流分析的自定义输出路径
- c++ - How to set theme from css resource for multiple glade widgets in gtkmm3
- entity-framework-core - 通过 DI 将选定的数据库传递给 DBcontext
- node.js - Mongodb apply condition on $lookup fetched data
- kotlin - Moshi failOnUnknown() 没有按预期工作