public void SafeDel(string keycoder) { if (this.listViewWorkstation.InvokeRequired) { DelCallback d = new DelCallback(SafeDel); this.Invoke(d, new object[] { keycoder }); } else { int pos = -1; for (int i = 0; i < this.listViewWorkstation.Items.Count; i++) { for (int j = 0; j < this.listViewWorkstation.Items[i].SubItems.Count; j++) { if (this.listViewWorkstation.Items[i].SubItems[j].Text == keycoder) { pos = i; break; } } if (pos != -1) { break; } } this.listViewWorkstation.Items[pos].Remove(); } }
//Result 값을 외부에서 가져갈수있도록 프로퍼티화 public void Add(int n1, int n2) { Result = (float)n1 + n2; //Callback 호출 발생.. //미리 등록된 함수를 호출시키는과정 //1.암시적으로 invoke 함수를 호출시킴 DelCallback(n1, n2, '+', Result); //2.명시적 호출방법 DelCallback.Invoke(n1, n2, '+', Result); }
public static void Main(string[] Agrs) { //Del handler = new Del(DelegateMethod); Del handler = DelegateMethod; DelCallback chanlder = MethodWithCallback; handler("Pakistan is my land"); //MethodWithCallback(45,31,handler); chanlder(45, 31, handler); Console.ReadKey(); }
/// <summary> /// 开始变化 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_chgVal_Click(object sender, EventArgs e) { call = new DelCallback(Change); //实现回调委托 //启动后台线程改变数据 Thread th = new Thread(new ThreadStart(Test)); th.IsBackground = true; //设置为后台线程 th.Start(); //启动线程 this.btn_chgVal.Enabled = false; }