在MSDN 中关于 Invoke 的示例中,我在设置委托变量时发现了奇怪的表达式:为什么他们使用创建新对象的语法:myDelegate = new AddListItem(AddListItemMethod);而不是分配myDelegate = AddListItemMethod;这些表达有什么区别?表达的意思是new AddListItem(...)什么?全码: public class MyFormControl : Form { public delegate void AddListItem(); public AddListItem myDelegate; private Button myButton; private Thread myThread; private ListBox myListBox; public MyFormControl() { myButton = new Button(); myListBox = new ListBox(); myButton.Location = new Point(72, 160); myButton.Size = new Size(152, 32); myButton.TabIndex = 1; myButton.Text = "Add items in list box"; myButton.Click += new EventHandler(Button_Click); myListBox.Location = new Point(48, 32); myListBox.Name = "myListBox"; myListBox.Size = new Size(200, 95); myListBox.TabIndex = 2; ClientSize = new Size(292, 273); Controls.AddRange(new Control[] {myListBox,myButton}); Text = " 'Control_Invoke' example"; myDelegate = new AddListItem(AddListItemMethod); } static void Main() { MyFormControl myForm = new MyFormControl(); myForm.ShowDialog(); } public void AddListItemMethod() { String myItem; for(int i=1;i<6;i++) { myItem = "MyListItem" + i.ToString(); myListBox.Items.Add(myItem); myListBox.Update(); Thread.Sleep(300); } } private void Button_Click(object sender, EventArgs e) { myThread = new Thread(new ThreadStart(ThreadFunction)); myThread.Start(); } private void ThreadFunction() { MyThreadClass myThreadClassObject = new MyThreadClass(this); myThreadClassObject.Run(); } }
- 1 回答
- 0 关注
- 128 浏览
添加回答
举报
0/150
提交
取消