62,271
社区成员
发帖
与我相关
我的任务
分享
delegate bool sendMsgDelegate(string name, string msg); //申明委托
public static bool sendMsg(string name, string msg)
{
return EmailSend.SendEmail("xxxxxx@163.com", "xxxxxx", "xxxxxxxx@qq.com", name, msg, "smtp.163.com");
}
public static void SendCallBack(IAsyncResult asynceresult)
{
sendMsgDelegate ss = (sendMsgDelegate)asynceresult.AsyncState;
bool result = ss.EndInvoke(asynceresult);
}
static void Main(string[] args)
{
sendMsgDelegate ss = new sendMsgDelegate(sendMsg);
for (int i = 0; i < 5; i++)
{
IAsyncResult asyceresult = ss.BeginInvoke("jack" + i, "Hello" + i, SendCallBack, ss);
}
Console.ReadLine();
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
doSomeThred();
}
/// <summary>
/// 异步线程
/// </summary>
private void doSomeThred()
{
doThreadSynch();
}
private void DoSomeThing(int i, int j)
{
try
{
RichTextBox ri = this.Controls["richTextBox" + (i + 1)] as RichTextBox;
ri.Text += "dobegin\r\n";
Thread.Sleep(2000);
ri.Text += "doend\r\n";
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
private void CallBackMethod(IAsyncResult ar)
{
doDelegate d = (doDelegate)ar.AsyncState;
//this.richTextBox1.Text += "Threadend\r\n";
this.richTextBox6.Text = this.richTextBox6.Text + "执行成功一次";
this.richTextBox7.Text = this.richTextBox7.Text + Thread.CurrentThread.Name;
d.EndInvoke(ar);
}
private delegate void doDelegate(int i, int j);
private void doThreadSynch()
{
doDelegate dlg = new doDelegate(DoSomeThing);
AsyncCallback acb = new AsyncCallback(CallBackMethod);
//this.richTextBox1.Text += "ThreadBegin\r\n";
for (int i = 0; i < 5; i++)
{
IAsyncResult iar = dlg.BeginInvoke(i, i, acb, dlg);
}
}
}