多线程的使用(三)
来源:互联网 发布:php检测w3c 编辑:程序博客网 时间:2024/05/17 09:15
在编写Winform应用程序的时候,经常会用到多线程,下面是我的一些笔记:
//不带参数的多线程调用方法;private void DoSomeThing(){ MessageBox.Show("Thread Start");}private void DoWork(){ Thread t=new Thread(new ThreadStart(this.DoSomeThing)); t.Start();}//带参数的多线程调用方法;private void DoSomeThing(object o){ MessageBox.Show(o.ToString());}private void DoWork(){ Thread t=new Thread(new ParameterizedThreadStart(DoSomeThing)); t.Start("JFJEJFNEJ");}//众所周知,新开一个线程代价是很高昂的,如果我们每个操作都新开一个线程,那么太浪费了,于是,下面使用线程池。无参数传递:private void DoWork(){ ThreadPool.QueueUserWorkItem(new WaitCallback(this.DoSomeThing));}private void DoSomeThing(){ Messagebox.Show("Thread无参数传递!")}//有参数传递private void DoWork(){ ThreadPool.QueueUserWorkItem(new WaitCallBack(this.DoSomeThing),"线程池的参数");}private void DoSomeThing(object o){ messagebox.show(o.tostring());}//使用匿名方法更灵活private void DoWork(){ string name="guodiegang"; ThreadPool.QueueUserWorkItem(new WaitCallback(delegate(object o){ MessageBox.Show(name); }));}//如果Invoke调用主窗体之后,还希望在调用完后得到一个返回值:private void DoWork(){ WaitCallback wc=new WaitCallback(this.DoSomeThing); ThreadPool.QueueUserWorkItem(wc,"参数");}private void DoSomeThing(object o){ System.Func<string,int> f=new Func<string,int>(this.GetId); object result=f.Invoke(f,o.tostring()); MessageBox.Show(result.ToString());}private int GetId(string name){ this.textBox1.Text=name; if(Name=="cao") { return 9898; } else return 0;}希望自己以后忘记了还能拿出来看看,不足之处望指出哦!!!
0 0
- 多线程的使用(三)
- C#多线程(三)——ThreadPool的使用
- 多线程的使用(4) - iOS多线程的三种方式
- 多线程的使用(4) - iOS多线程的三种方式
- 多线程的使用(4) - iOS多线程的三种方式
- 多线程NSOperation--NSOperationQueue 的使用(三)
- 创建使用多线程的 三种方式
- C#中的线程(三)使用多线程
- 使用多线程(三)
- JAVA多线程-Lock的使用(三)-Lock与Condiition相关的方法
- java多线程-专题-聊聊并发(三)Java线程池的分析和使用
- Java多线程总结(三):Java四种常用线程池的使用和分析
- Java 多线程编程之三:synchronized 关键字的使用
- 《java多线程编程核心技术》核心笔记(三) Lock的使用
- java 多线程之Sychronization的三种使用情况
- Java多线程学习1,使用线程的三种方式
- 多线程四.三-------不同锁的功能和使用
- 【多线程】多线程的使用
- 01.git简介、安装
- Python每天一题 0005
- Visual C++ 2010 启动内存泄漏检测功能,VLD 内存泄漏检查 都超简单(2)
- dom4j解析XML
- JS操作本地文件
- 多线程的使用(三)
- 图片的三级 缓存
- CentOS 6.5安装Erlang/OTP 19.0
- rerp介绍
- 02.git创建版本库repository
- 访问远程连接的磁盘
- 上门洗车APP --- Android客户端开发 之 项目结构介绍
- Asp.net Base64图片上传
- java中的内部类总结