private void button1_Click(object sender, System.EventArgs e)
{
DoneDelegate proDone=new DoneDelegate(Done);
proDone.BeginInvoke(null,null);
}
public delegate void DoneDelegate();
private void Done ()
{
string aa="00";
}
为什么,我在执行button1_Click中的proDone.BeginInvoke以后,不执行Done ()函数
{
DoneDelegate proDone=new DoneDelegate(Done);
proDone.BeginInvoke(null,null);
}
public delegate void DoneDelegate();
private void Done ()
{
string aa="00";
}
为什么,我在执行button1_Click中的proDone.BeginInvoke以后,不执行Done ()函数
你根本没告诉程序你要执行Done()
private void button1_Click(object sender, System.EventArgs e)
{
DoneDelegate proDone=new DoneDelegate(Done);
proDone.BeginInvoke(Done,null,null);
}
public delegate void DoneDelegate();
private void Done ()
{
string aa="00";
}
为什么,我在执行button1_Click中的proDone.BeginInvoke以后,不执行Done ()函数
{
DoneDelegate proDone=new DoneDelegate(Done);
proDone.BeginInvoke(null,null);
}
public delegate void DoneDelegate();
private void Done ()
{
string aa="00";
}
是会执行的.proDone.BeginInvoke(Done,null,null); 这个编译都不能通过,你怎么执行?
proDone.BeginInvoke(null,null);
============================
代码没问题,你是什么程序winform or webform 如果是winform 把
private void Done ()
{
string aa="00"; ===〉改成 MessageBox.Show("ok");试试看有没有效果 }
为了好看,把你的稍稍的修改了一下(不修改也是可以的):
public delegate string DoneDelegate();
private string Done ()
{
string aa="00";
return aa;
}
private void button1_Click(object sender, System.EventArgs e)
{
DoneDelegate proDone=new DoneDelegate(Done);
string endDD = proDone();
this.richTextBox1.Text += DateTime.Now.ToString("HH:mm:ss")+": 异步委托开始.\n";
IAsyncResult myResult = (IAsyncResult)proDone.BeginInvoke(null,null);
while(!myResult.IsCompleted) //不要也可以的,调试而已.
{
this.richTextBox1.Text += DateTime.Now.ToString("HH:mm:ss")+": 异步委托执行中....\n";
}
endDD = proDone.EndInvoke(myResult);
this.richTextBox1.Text += DateTime.Now.ToString("HH:mm:ss")+": 异步委托结束.\n返回值:"+endDD;
}