C# Thread开启线程几种方式
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace 通过Thread发起线程
{
class Program
{
static void Main(string[] args)
{
//直接使用Thread类,以及其方法
Thread threadA = new Thread(DownLoadFile);
threadA.Start();
Console.WriteLine("Main");
//使用Lamdba表达式
Thread threadB = new Thread(
() => {
Console.WriteLine("使用Lamdba表达式, 开始下载" + Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(2000);
Console.WriteLine("使用Lamdba表达式,下载完成");
}
);
threadB.Start();
//传递带参数的方法,,参数是object类型的,,
Thread threadC = new Thread(UpDataFile);
threadC.Start("Czhenya.jpeg");
Console.WriteLine("Main");
Console.ReadKey();
}
static void DownLoadFile()
{
Console.WriteLine("开始下载,此协程的Id是"+Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(2000);
Console.WriteLine("下载完成");
}
static void UpDataFile(object filename)
{
Console.WriteLine("开始上传" + filename);
Thread.Sleep(2000);
Console.WriteLine("上传完成");
}
}
}
使用线程池创建线程
using System;
using System.Threading;
namespace 线程池创建线程
{
class Program
{
static void Main(string[] args)
{
ThreadPool.QueueUserWorkItem(SmallThread);
ThreadPool.QueueUserWorkItem(SmallThread);
ThreadPool.QueueUserWorkItem(SmallThread);
ThreadPool.QueueUserWorkItem(SmallThread);
ThreadPool.QueueUserWorkItem(SmallThread);
ThreadPool.QueueUserWorkItem(SmallThread);
ThreadPool.QueueUserWorkItem(SmallThread);
Console.Read();
}
static void SmallThread(object filename)
{
Console.WriteLine("线程开始,ID:"+Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(1000);
Console.WriteLine("线程结束");
}
}
}
使用任务开启线程
using System;
using System.Threading;
using System.Threading.Tasks;
namespace 任务开始线程
{
class Program
{
static void Main(string[] args)
{
//第一种 任务开始方式
Task task = new Task(ThreadDemo);
task.Start();
//第二种 工厂模式,,
TaskFactory tf = new TaskFactory();
Task t = tf.StartNew(ThreadDemo);
Console.ReadKey();
}
static void ThreadDemo()
{
Console.WriteLine("任务开始,ID:" + Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(1000);
Console.WriteLine("任务结束");
}
}
}
C# Thread开启线程几种方式相关推荐
- java创建线程(Thread)的5种方式
java创建线程(Thread)的5种方式 方式一:继承于Thread类 方式二:实现Runnable接口 方式三:实现Callable接口 方式四:使用线程池 方式五:使用匿名类 方式一:继承于Th ...
- Servlet3.0 开启异步两种方式
Servlet3.0 开启异步两种方式: 方式一:web.xml形式 <servlet> <servlet-name>async0</servlet-name> & ...
- 05用线程类Thread开启线程
1.,密封类不能被继承 (thread) l类的内部的开启了,没有参数 2.要有参数 一定是object类型,(记住了) 3.自己创造线程 没有参数的时候 4.自己创造线程 有参数 用Thread开启 ...
- java开启一个线程_【jdk源码分析】java多线程开启的三种方式
1.继承Thread类,新建一个当前类对象,并且运行其start()方法 1 packagecom.xiaostudy.thread;2 3 /** 4 * @desc 第一种开启线程的方式5 *@a ...
- Qt创建线程两种方式的区别
使用QT创建线程有两种方式,方式A使用moveToThread,方式B是直接继承QThread.差异主要在于方式A的槽函数将会在新线程中运行,而方式B的槽函数在旧线程中运行. 结论如下: PS:旧线程 ...
- java实现线程三种方式_详解三种java实现多线程的方式
java中实现多线程的方法有两种:继承Thread类和实现runnable接口. 1.继承Thread类,重写父类run()方法 public class thread1 extends Thread ...
- Spring Boot开启的2种方式
Spring Boot依赖 使用Spring Boot很简单,先添加基础依赖包,有以下两种方式 1. 继承spring-boot-starter-parent项目 <parent>< ...
- 终止线程 4 种方式
1.正常运行结束 程序运行结束,线程自动结束. 2.使用退出标志退出线程 一般 run()方法执行完,线程就会正常结束,然而,常常有些线程是伺服线程.它们需要长时间的运行,只有在外部某些条件满足的情况 ...
- python启动方法_python进程开启的两种方式
一.进程 1.1.方式一 from multiprocessing import Process import time #方式一 def task(name): print(f"my na ...
最新文章
- ImportError: No module named setuptools
- 【已解决】请先调用 init 完成初始化后再调用其他云 API。init 方法可传入一个对象用于设置默认配置,详见文档。; at cloud.callFunction api 解决方案
- DI / CDI –基础
- linux摄像头内核驱动开发,怎么在Linux下开发摄像头驱动
- Rxjava2自我·解惑
- 调用gensim库训练word2vec词向量
- jquery 中多条件选择器,相对选择器,层次选择器的区别
- nvm管理node版本
- Xcode 清除最近使用纪录
- C#.NET自定义报表数据打印
- ezcad旋转轴标刻参数_激光打标机软件ezcad中的曲线圆弧排文本参数说明及设置...
- 智能车PCB设计思路
- 哔哩哔哩服务器在哪个文件夹,哔哩哔哩在手机哪个文件夹
- 产品研发流程的四个里程碑
- 最新最全的前端面试题集锦之 微信小程序 篇(从基础到高级)
- 2021 个人成长复盘
- java的LocalDateTime类来获取当天时间、前一天时间,本周的开始和结束时间、本月的开始和结束时间
- Spring AOP源码(1)—<aop:config/>AOP配置标签解析【一万字】
- mvdbos php spider,Scrapy-Redis分布式爬取自如网(一)
- 22-广搜深搜 Breadth-first Search Depth-first Search
热门文章
- js截屏 video_用原生JS和html5进行视频截图并保存到本地
- 爬虫python 科研有用吗_为什么说用python写爬虫有优势?
- 7-37 组个最小数 (20分)_波音737高度计上蹊跷的“8英尺”,09年土耳其航空1951号航班空难...
- c语言logo,真好玩 C语言输出Yahoo动态logo
- php aes 128位加密,php实现AES 128位加密的相关操作技巧分享
- c语言strchr的用法,C 库函数 - strchr()
- php获取文件上传进度,PHP使用APC获取上传文件进度
- 游戏引擎架构第二版中文pdf_阿里架构有多牛,一文带你看遍阿里技术架构!
- oracle logminer java_Oracle logminer
- python调用ping命令_Windows 中通过Python实现ping命令加时间戳