長時間運行的任務通常在後臺線程中執行,以防止UI凍結。看起來線程邏輯可以駐留在視圖或控制器中。誰應該在MVC中處理線程?
爲例(在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());
}
}
以某種方式做這件事有沒有優勢?
你是絕對正確的 - 只有控制器「知道」什麼時候需要線程。我爲什麼沒有想到這個? :) – casablanca 2012-07-10 06:55:34
看來其他答案也一致;我接受這個,因爲這是第一個答案。 – casablanca 2012-07-10 06:56:36