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(); }
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(); }
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程式 }