2016年5月10日 星期二

C# 委派 用閉包寫法,function 傳function,方法的參數是方法


當我切了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

沒有留言:

張貼留言