首页 > 编程语言 >C# 多线程task

C# 多线程task

时间:2023-03-17 14:36:53浏览次数:44  
标签:task C# 线程 theadpool 多线程 thead

C# 多线程task

1.异步和多线程的区别?
没什么太大区别。异步是目的,使用多线程实现。想想AJAX异步加载,不就是不想让浏览器界面卡住嘛,所以在程序中对于某些单独的操作,比如写日志,我们不想等它完成后再执行其它操作(因为写日志只是记录和应用提供的功能无关),可以单独开一个线程来执行执行写日志的操作。

2.什么是多线程?
同时执行多个任务。为什么你的程序不能同时执行多个任务?因为整个程序就是一个主线程,而一个线程同时只能从上至下顺序完成任务。比如控制台应用,你在一个while(true)的代码里Console.WriteLine(1)。拿这个程序就会在while(true)的代码里走不出来,可是如果你开启一个其它线程,在另一个线程里while(true)并且 Console.WriteLine(2),那控制台就可以同时打印1和2

3.thead和theadpool
C#中对于线程的开启可以使用thead这个类来开启。theadpool是一个线程池,对于需要频发开启线程的操作是一个优化。                                  

4.thead和theadpool

C#中对于线程的开启可以使用thead这个类来开启。theadpool是一个线程池,对于需要频发开启线程的操作是一个优化。thead和theadpool并不怎么容易控制所以不建议使用它们开启线程,task一般来讲是用来替代theadpool的,毕竟theadpool坑太多。

至C#4.0起,线程建议使用task。task会根据你线程的任务,来决定内部是使用thead还是theadpool来完成你指定的任务。这是它强大的地方。

5.数据安全问题
数据安全问题。也有人称之为重入和集合安全问题。这是因为在多线程编程下,多个线程同时操作一个数据,会导致数据改变的莫名其妙不符合你的需要,一般有三个方法,我觉得最简单的就是使用lock锁住这个数据,不让其它线程访问只让当前线程访问。

  分类: C#|ASP.NET

标签:task,C#,线程,theadpool,多线程,thead
From: https://www.cnblogs.com/sexintercourse/p/17226683.html

相关文章

  • C# task和timer实现定时操作
    C#task和timer实现定时操作C#中,定时器,或者叫作间隔器,每隔一段时间执行一个操作。1.Timer本身就是多线程C#中为不同场合下使用定时器,提供了不同的Timer类,在asp.net中......
  • 【Bug】 Springboot 调用第三方接口报在 "请求目标中找到无效字符。有效字符在RFC 72
    错误信息问题原因tomcat高版本严格按照RFC3986规范解析地址。该规范只允许包含a-zA-Z0-9-_.~以及所有保留字符!*’();:@&=+$,/?#[......
  • 为什么 C# 可能是最好的第一编程语言
    为什么C#可能是最好的第一编程语言 纵观神州大地,漫游中华互联网,我看到很多人关注为什么你应该开始学习JavaScript做前端,而对blazor这样的面向未来的框架有种莫名的......
  • 基于alamouti的STBC空时分组码误码率matlab仿真
    up目录一、理论基础二、核心程序三、测试结果一、理论基础空时分组码是一种在无线通信中使用的技术,用于在多个天线上发送数据流的多个副本,并利用各种接收的数据版本......
  • CTF第九天
    XCTF体验题库:misc_pic_again【原理】图片隐写术【目的】图片隐写术【环境】Windowskali【工具】binwalk,stegsolve.jar【步骤】步骤1:首先下载附件:步骤2:用工具Stegsolv......
  • 从0到1入门Docker(七)配置国内加速器
     配置国内加速器 上篇文章内容是Docker引擎的安装,今天这篇文章来说一下配置国内加速器​​https://blog.51cto.com/u_15485663/6127076​​学习Docker推荐大家可以看动......
  • 误删除/lib64/libc.so.6后的恢复方法
    误删除libc.so.6后所有命令都不能操作了[root@node01lib64]#rm-rflibc.so.6[root@node01lib64]#llls:errorwhileloadingsharedlibraries:libc.so.6:cannotop......
  • idea使用tomcat部署项目失败总结
    情况①:无法访问localhost:8080页面解决办法:https://www.cnblogs.com/lwt280887072/p/16307489.html情况②:artifact项目:warexploded:Errorduringartifactdeployment......
  • BUUCTF-MISC-LSB(stegsolve的一种妙用)
    题目已知是LSB隐写丢入stegsolve,点>,可以看见Redplane0,Greenplane0,Blueplane0上边好像有东西点analyse->dataextract,让红绿蓝通道为0,可以看见是png图片点sa......
  • c++prime 6-9知识点摘取
      initializer_list<T>类:https://blog.csdn.net/qunsorber/article/details/122860985     https://blog.csdn.net/qq_36546177/article/details/108763448......