长时间运行的任务通常在后台线程中执行,以防止 UI 卡住。似乎线程逻辑可以驻留在 View 或 Controller 中。
举个例子(在 C# 中),假设有一个名为 RunAsync
的方法。在后台线程中运行委托(delegate),这里有两种方法:
// Option 1
public class View {
public void OnButtonClicked() {
RunAsync(() => controller.DoSomething());
}
}
public class Controller {
public void DoSomething() {
model.Foo();
}
}
或者:
// Option 2
public class View {
public void OnButtonClicked() {
controller.DoSomething();
}
}
public class Controller {
public void DoSomething() {
RunAsync(() => model.Foo());
}
}
以一种方式或另一种方式这样做有优势吗?
最佳答案
我看到 Controller 负责线程安全的两个论点。
关于multithreading - 谁应该在 MVC 中处理线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11407865/