當我切了MVC 的時候,有時候為了 V 才能更動畫面,而C 不能更動畫面時
程式就要想一個合情合理的寫法。
所以我就想 在V那層按一個按鈕,呼叫了C 的方法,而C 要通知V 把畫面更新
就會變成
呼叫 方法一( 畫面更新1方法 , 畫面更新2方法 );
大概是這樣
private void button1_Click(object sender, EventArgs e) { Class1 c1 = new Class1(); c1.方法一(callback1, callback2); } private void callback1(string 目前進度) { txt1.Text = 目前進度; Application.DoEvents(); } private void callback2(string 結果) { txt2.Text = 結果; Application.DoEvents(); }
public class Class1 { public void 方法一(Action<string> callback函式1, Action<string> callback函式2) { for (int i = 1; i < 11; i++) { System.Threading.Thread.Sleep(300); callback函式1(i.ToString()); } callback函式2("完成"); } }
Sample 範例
https://drive.google.com/open?id=0B1XxIr6Ve-glZFktVm5PRDlybUU
沒有留言:
張貼留言