Thread 多线程 等待 回调函数 获取返回值
来源:互联网 发布:淘宝药品需求清单 编辑:程序博客网 时间:2024/06/05 21:08
Thread 是1.1版本时候的线程 它默认是前台线程
前台线程:进程关闭后,线程还会执行完
无参数多线程
Console.WriteLine("主线程开始"); //不带参数的多线程 ThreadStart sta = () => { Thread.Sleep(500); Console.WriteLine("线程{0}开始执行方法",Thread.CurrentThread.ManagedThreadId); }; //创建Thread //实现多线程 for (int i = 0; i < 5; i++) { Thread t = new Thread(sta); t.Start(); } Console.WriteLine("主线程结束");
结果
有参数 多线程
Console.WriteLine("主线程开始"); //带参数多线程 ParameterizedThreadStart p = t => { Thread.Sleep(1000); Console.WriteLine("参数为{0},当前线程为{1}",t,Thread.CurrentThread.ManagedThreadId); }; for (int i = 0; i < 5; i++) { Thread t = new Thread(p); t.Start(i); } Console.WriteLine("主线程结束");
结果
回调函数
public static void Do3() { //Thread实现添加回调函数 //在我看来这就是伪回调 //正经的回调函数是如果有等待线程的话,等待只会等着方法体完成就算等待完成,而不会等待回调函数完成 //这种实现方法 会把回调函数也等待完成 Console.WriteLine("主线程开始"); ThreadStart sta = () => { FirstFun(); CallBackFun(); }; List<Thread> tList = new List<Thread>(); for (int i = 0; i < 5; i++) { Thread t = new Thread(sta); t.Start(); tList.Add(t);//加入集合中 方便等待 } //等待 foreach (Thread t in tList) { //此效果就是将线程加入主线程当中 起到等待效果 t.Join(); } Console.WriteLine("主线程结束"); Console.Read(); } //委托方法 public static void FirstFun() { Thread.Sleep(1000); Console.WriteLine("这里是主方法体内容,当前线程ID{0}",Thread.CurrentThread.ManagedThreadId); } //回调函数 public static void CallBackFun() { Thread.Sleep(1000); Console.WriteLine("这里是回调函数内容,当前线程ID{0}", Thread.CurrentThread.ManagedThreadId); }
调用Do3的结果
有回调函数 有返回值
public static void Do4() { //带参数带返回值 ParameterizedThreadStart p = t => { string Rvalue = null; Rvalue=FirstFun1((int)t); CallBackFun1(); Console.WriteLine("结果{0}",Rvalue); }; for (int i = 0; i < 5; i++) { Thread t = new Thread(p); t.Start(i); } } //委托方法 public static string FirstFun1(int i) { Thread.Sleep(1000); Console.WriteLine("这里是主方法体内容,当前线程ID{0}", Thread.CurrentThread.ManagedThreadId); return i.ToString(); } //回调函数 public static void CallBackFun1() { Thread.Sleep(1000); Console.WriteLine("这里是回调函数内容,当前线程ID{0}", Thread.CurrentThread.ManagedThreadId); }
等待
ThreadStart sta = () => { FirstFun(); CallBackFun(); }; List<Thread> tList = new List<Thread>(); for (int i = 0; i < 5; i++) { Thread t = new Thread(sta); t.Start(); tList.Add(t);//加入集合中 方便等待 } //等待 foreach (Thread t in tList) { //此效果就是将线程加入主线程当中 起到等待效果 t.Join(); }
0 0
- Thread 多线程 等待 回调函数 获取返回值
- ThreadPool 线程池 多线程 等待 回调函数 获取返回值
- 获取jquery中$.post回调函数返回值
- 获取$.post $.get回调函数返回值问题
- 获取$.post $.get回调函数返回值问题
- 获取$.post $.get回调函数返回值问题
- 使用同步获取DWR回调函数的返回值
- python在回调函数中获取返回值
- 异步委托 多线程 多线程等待 多线程获取返回值
- WndProc()回调函数的返回值
- $.get回调函数的返回值
- C#中的多线程使用 -- Thread 类: 使用回调函数从一个线程中检索数据
- C#中的多线程使用 -- Thread 类: 使用回调函数从一个线程中检索数据
- C#中的多线程使用 -- Thread 类: 使用回调函数从一个线程中检索数据
- DWR 同步操作, 取得回调函数的返回值
- 在回调函数外访问dwr返回值
- DWR 同步操作, 取得回调函数的返回值
- java 多线程 等待返回
- (一)1.4JDK安装与环境变量配置及环境变量相关问题
- TS科普23 ES PES TS关系
- 图解HTTP:确保WEB安全的HTTPS连接
- Authentication Failed For RDS backend
- java 自定义注解 spring aop 实现注解
- Thread 多线程 等待 回调函数 获取返回值
- JavaWeb学习总结二十、JavaBean总结
- java中的流——整理
- fashion
- OJ.Aconly时间戳
- 低版本IE对于JSON数据的处理
- union与uinon all的区别
- 【VOS】SIP软电话对接VOS服务器之RC4加密对接
- Android 学习之QCRIL QMI