C#中的线程概念

前端之家收集整理的这篇文章主要介绍了C#中的线程概念前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是C#的新手,还在学习线程概念.我写了一个程序如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;

namespace ConsoleApplication17
{
  class Program
  {
    static void Main(string[] args)
    {
        System.Threading.ThreadStart th1 = new System.Threading.ThreadStart(prnt);
        Thread th = new Thread(th1);
        th.Start();
        bool t = th.IsAlive;
        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine(i + "A");
        }
    }

    private static void prnt()
    {
        for (int i = 0; i < 10; i ++)
        {
            Console.WriteLine(i + "B");
        }
    }
  }
}

我期待输出如下: –

1A
2A
1B
3A
2B...

因为我相信主线程和新创建的线程都应该同时执行.

但是输出是有序的,首先调用prnt函数,然后执行Main方法for循环.

解决方法

也许一个10的cicle不足以看到两个线程同时运行. 使用更长的循环或在循环迭代中放置Thread.Sleep(100). 启动一个线程非常昂贵.可能的情况是,由于线程启动所需的时间,您在线程循环开始之前执行主循环

猜你在找的C#相关文章