异步调用与线程(总结篇)
2010-09-30 21:07:06 来源:WEB开发网 private void button1_Click(object sender, EventArgs e)
{
//添加当前主线程名称“main”
Thread.CurrentThread.Name = "main";
//使用线程池ThreadPool创建线程
ThreadPool.QueueUserWorkItem(Add);
Debug.WriteLine(Thread.CurrentThread.Name);
}
//这里加obj参数是为了适应委托格式 public delegate void WaitCallback(object state)
//包含回调方法要使用的信息的对象。
void Add(object obj)
{
for (int i = 0; i < 100000; i++)
{
//输出当前执行操作的现场
Debug.WriteLine(Thread.CurrentThread.Name+i);
}
}
可以同样用委托再委托的方法 调用带有参数(或没有任何参数)的方法
private void button1_Click(object sender, EventArgs e)
{
//添加当前主线程名称“main”
Thread.CurrentThread.Name = "main";
//使用线程池ThreadPool创建线程
ThreadPool.QueueUserWorkItem(delegate { Add(333, 44); }, "111");
Debug.WriteLine(Thread.CurrentThread.Name);
}
void Add(object obj,int q)
{
for (int i = 0; i < q; i++)
{
//输出当前执行操作的现场
Debug.WriteLine(Thread.CurrentThread.Name+i);
}
}
更多精彩
赞助商链接