通常、実行時間の長いタスクはバックグラウンド スレッドで実行され、UI がフリーズしないようにします。スレッド化ロジックは、ビューまたはコントローラーのいずれかに存在する可能性があるようです。
RunAsync
例として (C# の場合)、バックグラウンド スレッドでデリゲートを実行するという名前のメソッドがあるとします。これを行う 2 つの方法を次に示します。
// 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());
}
}
いずれかの方法でそれを行う利点はありますか?