长时间运行的任务通常在后台线程中执行,以防止 UI 冻结。似乎线程逻辑可以驻留在视图或控制器中。
举个例子(在 C# 中),假设有一个名为的方法RunAsync
在后台线程中运行委托,这里有两种方法:
// 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());
}
}
以一种方式或另一种方式这样做有优势吗?