首页 > Windows开发 > 详细

C# 的执行顺序

时间:2018-08-03 13:50:15      阅读:163      评论:0      收藏:0      [点我收藏+]

为了搞清.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# 的执行顺序

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!