
C#
doit_SYL
既有肉身,就注定要承受与生俱来的千般惊扰。适应变化,调整自己,挑战自己。
展开
-
C#多线程操作(二):异步任务
1、从Thread到Task 创建线程的代价高昂,而且每个线程都要占用大量虚拟内存(例如Windows默认1MB)。在.Net Framework 4及后续版本中,异步操作不是每次创建一个线程,而是创建一个Task,并告诉任务调度器有异步工作要执行。此时调度器可能采取多种策略,但默认是从线程池请求一个工作线程,线程池会自行判断怎么做最高效。 任务是对象,其中封装了以异步方式执行的工作。Task与委托的区别:委托是同步的,而任务是异步的。执行委托的时候,当前线程的控制点会立即转移到委托的...原创 2020-08-06 23:54:24 · 597 阅读 · 0 评论 -
C#多线程操作(一):线程与线程池
class Program { //C#多线程操作 #region 1、使用System.Threading.Thread public const int _Repetitions = 1000; static void Main(string[] args) { ThreadStart thredStart = DoWork; Thread thread = ne..原创 2020-08-02 23:29:17 · 377 阅读 · 0 评论 -
C#中string,Int,Queue,Stack频繁设值取值哪个更快?
最近项目有一个场景:在winfrom开发中,我需要实时监听一个Socket服务,并将读取字符内容展示到界面上。最初我的实现方式是用static string 变量来在线程中共享改成员的值,但在界面展示的时候有很明显的延时,于是我就在思考是不是换一种数据结构延迟会好一些呢?有了这个想法之后马上操刀:代码示例如下: private static void Main(string[] args...原创 2019-11-28 00:38:51 · 478 阅读 · 0 评论 -
Winfrom 线程安全
在winfrom开发过程中有时候会遇到在子线程中操作UI线程的操作,这个时候如果在子线程中直接操作控件的话会有下面的错误发生。如下图所示: public partial class Form1 : Form { public Form1() { InitializeComponent(); } ...原创 2019-11-25 22:34:34 · 292 阅读 · 0 评论 -
C#反编译利器--dotPeek
在开发项目的时候,当项目数量变大,源代码管理也是一件非常头疼的事,如果没有专门的人员来管理代码,没有code review机制的话,代码很容易乱,这就会导致现场的代码与本地的代码不一致,而且可能之前开发代码的人员已经离职了,这个时候反编译代码就可以很容易让我们了解其代码逻辑。今天偶然接触到一款反编译工具:dotPeek对于用惯了VS开发项目的C#程序员来说,其界面和VS非常类似,一些快捷...原创 2019-07-16 20:15:40 · 7208 阅读 · 1 评论 -
C# delegate初识
原文链接:https://code-maze.com/csharp-delegates/在本文中,我们将更多地讨论C#中的委托。委托是对方法的引用。我们可以使用委托对象将它传递给我们想要调用引用方法的代码,而不需要在编译时知道将调用哪个方法。本文是该系列的一部分如果您想查看本教程的完整导航,可以在此处执行C#Intermediate Tutorial。要下载源代码,...翻译 2019-07-25 00:39:30 · 232 阅读 · 0 评论