首页 > 解决方案 > 我应该如何处理 MVVM c# 应用程序中的多线程

问题描述

据我了解,我的应用程序应该在单线程(UI 线程)上运行,并且有两种情况,我可能希望在另一个线程上执行代码:

  1. 有长时间运行的工作,如系统/数据库访问等

    • 这样的代码应该使用 async/await
    • 当执行到实际的文件访问时,处理它的库应该有 use .ConfigureAwait(false),它将在线程池的另一个线程上安排继续
    • 然后应用程序代码中的其他一些等待(没有.ConfigureAwait(false))将在 UI 线程上恢复
  2. 有来自其他线程(系统、设备等)的异步通知

    • 这些应该使用调度程序在 UI 线程上安排
  3. 附加假设:

    • 模型应该隔离多线程
    • 视图模型中不应有调度程序调用

这个总结正确吗?

标签: c#wpfmultithreadingmvvmuwp

解决方案


推荐阅读