• 学习笔记线程的几个常用方法实例


    网上找到的一段代码,经过自己的些微修改,方便理解线程中常用的sleep,join,abort用法

    class Program
        {
            public static void doSomething()
            {
                for (int i = 0; i < 100; i++)
                {

          //当前进程每打印一个数字就等待100毫秒钟
                    Console.WriteLine("doSomething thread:{0}.", i);
                    Thread.Sleep(100);

          //如果i=50,则当前进程终止
                    if (i == 50)
                    {
                        Thread.CurrentThread.Abort();
                    }
                }
            }

            static void Main(string[] args)
            {
                //thread.sleep,join,abort执行
               //开始主进程

        try
                {
                    //Thread.CurrentThread.Abort();//此句当前主进程终止,退出程序
                    ThreadStart startThread = new ThreadStart(doSomething);
                    Thread newThread = new Thread(startThread);
                    newThread.Start();//子进程开始
                    for (int i = 0; i < 50; i++)
                    {

            //主进程每打印一个数字就等待100毫秒钟
                        Console.WriteLine("mainThread:{0}.", i);
                        Thread.Sleep(100);

            //当i=25的时候,子进程加入到主进程中来,子进程此时输出到25这个数字
                        if (i == 25)
                        {
                            newThread.Join();
                        }

            //主进程等待子进程执行完毕,才会接着向下执行

            //当i=40的时候,主线程终止,此时进入到catch块
                        if (i == 40)
                        {
                            Thread.CurrentThread.Abort();
                        }
                    }
                }
                catch (ThreadAbortException e)
                {
                    Console.WriteLine("abort thread state:{0}", Thread.CurrentThread.ThreadState.ToString());
                    Console.WriteLine("abort message:{0}", e.Message);

          //主进程不终止,继续执行
                    Thread.ResetAbort();//如果注释此句,线程将执行完finall后中止
                }
                finally
                {
                    Console.WriteLine("finally thread state:{0}", Thread.CurrentThread.ThreadState.ToString());
                }
                Console.WriteLine("thread state:{0}", Thread.CurrentThread.ThreadState.ToString());

                Console.ReadLine();
            }
        }

  • 相关阅读:
    右上角的 那个 个数,
    i am sorry,
    搞定了,一个是重复,一个是 判断navigationcontroller里面 最后的那个类,
    ios no code signature found,
    这次逻辑通了,
    分析下现在 遇到的这个棘手的问题,
    时间 折腾我的,
    老大说 调到 4寸的 就不用适配 5了,
    应用程序生命周期,
    解决【npm ERR! Unexpected end of JSON input while parsing near '...sh_time":141072930277'】方案
  • 原文地址:https://www.cnblogs.com/maomaokuaile/p/2827533.html
Copyright © 2020-2023  润新知