关于 Task.Run 简单的示例
2024-08-31 23:45:43
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.
直接贴代码了:
运行截图:
谢谢浏览!
最新文章
- geotrellis使用(十六)使用缓冲区分析的方式解决投影变换中边缘数据值计算的问题
- CSS padding margin border属性详解【转载】
- 怎样在屏幕上显示多个alv
- 6.跑步者--并行编程框架 ForkJoin
- CF Round #355 Div.2
- Powerbuilder编程技巧 如何获取网页的HTML源码
- J2EE--常见面试题总结 -- 一
- Nosql简介 Redis,Memchche,MongoDb的区别
- Vuex 教程案例:计数器以及列表展示
- WPF调用zxing生成二维码
- nodejs在windows下的安装配置(使用NVM的方式)
- 在Cygwin中出现JAVA_HOME出现故障找不到出现故障
- MongoDB常用命令总结
- git learn
- PCM、G.729等常用VoIP编码的理论带宽计算
- 【转】Kettle发送邮件步骤遇到附件名是中文名变成乱码的问题解决办法
- oracle和mysql在sql中生成uuid的方法
- JavaScript设计模式-7.单例模式
- Py3+PyQt5+Eric6:学习记录之第一天:点击按钮获取文本框的值并输出。
- 初识用.NET Remoting来开发分布式应用
热门文章
- 我脑中的JVM大全附带Java8的特性
- Android常见面试题学习第二天(原创)
- 【PHP】关于系统性能追踪工具molten
- bat脚本输出日志
- Python语言基础07-面向对象编程基础
- 6-剑指offer: 和为S的连续正数序列
- HBuilder创建app
- 解决在linux下编译32程序出现“/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录问题”
- Python 函数小程序初解
- 201871010104-陈园园 《面向对象程序设计(java)》第十周学习总结