示例#1
0
        static void Main(string[] args)
        {
            AsyncCallback callback = MyCallBackMethod;

            MathOperation op = Math.Sin;

            //last parameter, state information
            op.BeginInvoke(Math.PI / 2, callback, "name");
            Console.WriteLine("delegate invoked");
            Console.ReadLine();
        }
示例#2
0
        static void Main(string[] args)
        {
            AsyncCallback callback = MyCallBackMethod;

            MathOperation op = DelegateMethod;

            op.BeginInvoke(1000000, callback, null);
            Console.WriteLine("delegate invoked");
            Console.WriteLine("continuing in main thread while calculation runs in background");
            Console.ReadLine();
        }
示例#3
0
        private void button3_Click(object sender, EventArgs e)
        {
            //宣告一種類別叫做AsyncCallback(非同步)只向參考方法
            //方法型別 變數名稱 = 初始化(宣告一個方法指派);
            //有種像是只宣告欄位並指派給值,沒有使用屬性set指派的欄位
            AsyncCallback callback = myCallBackMath;//等同AsyncCallback callback = new AsyncCallback(new Form1().myCallBackMath)


            MathOperation op = new MathOperation(SimpleMath.calculator);//static不用new

            //執行非同步的動作
            op.BeginInvoke(0.25, callback, "HelloTest");

            MessageBox.Show("Hello 結束..");//因為現在要執行的程式中主要執行緒會先執行出來,執行完畢後換執行BeginInvoke程式
        }