cas*_*nca 4 model-view-controller multithreading
长时间运行的任务通常在后台线程中执行,以防止UI冻结.似乎线程逻辑可以驻留在视图中或控制器中.
作为一个例子(在C#中),假设有一个名为RunAsync在后台线程中运行委托的方法,这里有两种方法:
// Option 1
public class View {
public void OnButtonClicked() {
RunAsync(() => controller.DoSomething());
}
}
public class Controller {
public void DoSomething() {
model.Foo();
}
}
Run Code Online (Sandbox Code Playgroud)
要么:
// Option 2
public class View {
public void OnButtonClicked() {
controller.DoSomething();
}
}
public class Controller {
public void DoSomething() {
RunAsync(() => model.Foo());
}
}
Run Code Online (Sandbox Code Playgroud)
这样或那样做是否有优势?
我看到控制器负责线程安全的两个参数.
| 归档时间: |
|
| 查看次数: |
1767 次 |
| 最近记录: |