C#之线程

同步代码:代码质心顺序从上到下执行,如果执行的时间过长(大量计算,文件读写操作,通信)会阻塞UI界面

异步代码:先去执行同步代码,再去执行异步代码,执行的顺序不再是从上到下。

实现异步代码的方式:1 线程编译(Thread)、异步任务(Task)、后台任务(BackgroundWorder)

创建异步任务的方式

'首先创建一个方法

cs 复制代码
public void F1()
{
    Console.WriteLine("通过ThreadStrart封装异步任务,通过Thread开启线程");
}
cs 复制代码
//第一种方式
ThreadStreat str = new ThreadStrart(F1);
Tread tread = new Tread(str);
thread.Srart();
cs 复制代码
//方式2
Thread thread = new Thread(F1);
thread.Start();
cs 复制代码
//方式3 通过start(参数)分线程里面传递数据
new Thread(a=>
{
    Console.WriteLine("lambda表达式之间定义线程函数"+a);
}).Start(10);
cs 复制代码
//方法4 使用线程池来创建线程
//线程是一种多线程管理技术,用于复用 以创建的线程,避免频繁创建和销毁线程带来的性能开销,他通过预先创建一组线程,并维护一个任务队列,按需分配任务给空闲的线程执行
TreadPool.QueueUserWorkItem(a=>
{
    Consloe.WriteLine("使用线程池创建重复使用的线程对象"+a);
},10);
//参数2可以为任意类型
相关推荐
在放️18 小时前
Python 爬虫 · 第三方代理接入与合规使用
开发语言·爬虫·python
KANGBboy18 小时前
java知识五(继承)
java·开发语言
c++之路18 小时前
Bazel C++ 构建系列文档(三):构建第一个 C++ 项目
开发语言·c++
AI人工智能+电脑小能手18 小时前
【大白话说Java面试题 第117题】【并发篇】第17题:线程有几种状态,之间如何转换?
java·开发语言·面试
聚名网20 小时前
域名net,com,cn有区别吗?有哪些不同呢?
服务器·开发语言·php
牛油果子哥q20 小时前
STL set与map底层精讲,红黑树适配原理、有序去重特性、迭代器遍历、API实战与面试核心考点全解
开发语言·数据结构·c++·面试
foundbug99920 小时前
直流电机 PID 速度控制 MATLAB 仿真程序
开发语言·matlab
Tian_Hang21 小时前
C++原型模式(Protype)
开发语言·c++·算法
天天讯通21 小时前
OKCC 呼叫中心安全性能全解析:技术防护与管理措施指南
大数据·开发语言·网络·人工智能·安全·语音识别
xufengzhu21 小时前
第三方 Python 库 redis-py + hiredis 的使用
开发语言·redis·python