1. 关于 Task.Run 简单的示例01

直接贴代码了:

     public static class TaskDemo01
{
public static void Run()
{
Console.WriteLine("【Debug】主 线程ID:" + Thread.CurrentThread.ManagedThreadId);
string str1 = string.Empty, str2 = string.Empty, str3 = string.Empty; var task1 = Task.Run(() =>
{
Thread.Sleep();
str1 = "姓名:张三,";
Console.WriteLine("【Debug】task1 线程ID:" + Thread.CurrentThread.ManagedThreadId);
}).ContinueWith(t =>
{
Thread.Sleep();
str2 = "年龄:25,";
Console.WriteLine("【Debug】task2 线程ID:" + Thread.CurrentThread.ManagedThreadId);
}).ContinueWith(t =>
{
Thread.Sleep();
str3 = "爱好:妹子";
Console.WriteLine("【Debug】task3 线程ID:" + Thread.CurrentThread.ManagedThreadId);
}); //Thread.Sleep(2500);//其他逻辑代码 task1.Wait(); Console.WriteLine(str1 + str2 + str3);
Console.WriteLine("【Debug】主 线程ID:" + Thread.CurrentThread.ManagedThreadId);
}
}

运行截图:

2. 关于 Task.Run 简单的示例02

直接贴代码了:

    public static class TaskDemo02
{
/// <summary>
/// 整个方法只需用 5 秒即可执行完毕!
/// </summary>
public static void Run()
{
Console.WriteLine(string.Format("当前时间:{0},主线程方法开始...!", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
var task = Task.Run(() =>
{
Thread.Sleep();//假设这是个访问数据库的方法
Console.WriteLine(string.Format("当前时间:{0},Task方法体内部执行完毕!", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
});
Console.WriteLine(string.Format("当前时间:{0},主线程方法已经注入 Task.Run 方法,即将休眠 2 秒。", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
Thread.Sleep();//假设这是个访问FQ网站的方法
Console.WriteLine(string.Format("当前时间:{0},主线程方法休眠 2 秒完成。即将等待 Task.Run 方法执行结束", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
task.Wait();
Console.WriteLine(string.Format("当前时间:{0},主线程方法整个方法执行完毕!!", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
} }

运行截图:

3. 关于 Task.Run 简单的示例03

        public static void Run()
{
var url = "http://www.cnblogs.com?id="; var list_task = new List<Task<string>>();
for (int i = ; i < ; i++)
{
var temp_url = url + i;
var task = Task.Run(async () =>
{
Console.WriteLine("temp_url=" + temp_url);
var client = new System.Net.Http.HttpClient();
var html = await client.GetStringAsync(temp_url);
Console.WriteLine("temp_url=" + temp_url + " is ok");
return html;
}); list_task.Add(task);
} Task.WaitAll(list_task.ToArray()); foreach (var item in list_task)
{
Console.WriteLine(item.Result);
}
}

4.

5.

直接贴代码了:

运行截图:

谢谢浏览!

最新文章

  1. geotrellis使用(十六)使用缓冲区分析的方式解决投影变换中边缘数据值计算的问题
  2. CSS padding margin border属性详解【转载】
  3. 怎样在屏幕上显示多个alv
  4. 6.跑步者--并行编程框架 ForkJoin
  5. CF Round #355 Div.2
  6. Powerbuilder编程技巧 如何获取网页的HTML源码
  7. J2EE--常见面试题总结 -- 一
  8. Nosql简介 Redis,Memchche,MongoDb的区别
  9. Vuex 教程案例:计数器以及列表展示
  10. WPF调用zxing生成二维码
  11. nodejs在windows下的安装配置(使用NVM的方式)
  12. 在Cygwin中出现JAVA_HOME出现故障找不到出现故障
  13. MongoDB常用命令总结
  14. git learn
  15. PCM、G.729等常用VoIP编码的理论带宽计算
  16. 【转】Kettle发送邮件步骤遇到附件名是中文名变成乱码的问题解决办法
  17. oracle和mysql在sql中生成uuid的方法
  18. JavaScript设计模式-7.单例模式
  19. Py3+PyQt5+Eric6:学习记录之第一天:点击按钮获取文本框的值并输出。
  20. 初识用.NET Remoting来开发分布式应用

热门文章

  1. 我脑中的JVM大全附带Java8的特性
  2. Android常见面试题学习第二天(原创)
  3. 【PHP】关于系统性能追踪工具molten
  4. bat脚本输出日志
  5. Python语言基础07-面向对象编程基础
  6. 6-剑指offer: 和为S的连续正数序列
  7. HBuilder创建app
  8. 解决在linux下编译32程序出现“/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录问题”
  9. Python 函数小程序初解
  10. 201871010104-陈园园 《面向对象程序设计(java)》第十周学习总结