码迷,mamicode.com
首页 > Windows程序 > 详细

C# 的执行顺序

时间:2018-08-03 14:21:54      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:oid   线程   一个   har   证明   csharp   sha   private   文本   

为了搞清.net的执行顺序我们做如下准备

1,做3个任务,分别往3个文本文件写入100万行时间戳,每个任务根据计算大概需要400+毫秒。

        DateTime dt1;
private void dowork1() { using (System.IO.StreamWriter writer = File.AppendText("newfile1.txt")) { for (int i = 0; i < 1000000; ++i) { writer.WriteLine((DateTime.Now-dt1).Milliseconds.ToString()); } writer.Close(); } } private void dowork2() { using (System.IO.StreamWriter writer = File.AppendText("newfile2.txt")) { for (int i = 0; i < 1000000; ++i) { writer.WriteLine((DateTime.Now - dt1).Milliseconds.ToString()); } writer.Close(); } } private void dowork3() { using (System.IO.StreamWriter writer = File.AppendText("newfile3.txt")) { for (int i = 0; i < 1000000; ++i) { writer.WriteLine((DateTime.Now - dt1).Milliseconds.ToString()); } writer.Close(); } }

2,采用如下方法调用者三个任务:以线程的方式调用任务1,然后调用任务2,最后调用任务3。

            dt1 = DateTime.Now;            
            Task t1 = new Task(dowork1);
            t1.Start();           
            dowork2();
            dowork3();

3,最终得出的结果:

查看每个任务写入文本文件的时间戳就很容易发现:

  • 任务1和任务2是同步进行的,所以时间戳是一致的。证明采用线程时,主线程和副线程是同步进行的
  • 任务3一直等待,直至任务2完成才开始。任务3的时间戳从任务2的时间戳继续。证明同一个线程里,是任务是顺序执行的。

 

C# 的执行顺序

标签:oid   线程   一个   har   证明   csharp   sha   private   文本   

原文地址:https://www.cnblogs.com/franklin2018/p/9413203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!