C# - 线程启动阻止当前线程

时间:2017-04-26 00:42:12

标签: c# multithreading

以前,我在这样的线程中运行了一个方法:

static void procedure() { while (x) thread.sleep() }
static Thread runner;

...

void method(){
    runner = new Thread(new ThreadStart(procedure));
    runner.Start();
}

我改变了这一点,试图建立一个可以在不同点开始的单个线程。

static void procedure() { while (x) thread.sleep() }
static Thread runner;

void main(){
    runner = new Thread(new ThreadStart(procedure));
    ...
}
...

void method(){
    runner.Start();
}

这不再按预期运行线程。程序停止,我认为是由于主线程上运行了新线程。

为什么它不再在单独的线程上运行?

1 个答案:

答案 0 :(得分:0)

工作正常,这是基于您的代码的示例。

 class Program
    {
        static void procedure()
        {
            while (true)
            {
                Thread.Sleep(1000);
                Console.WriteLine("Sleep");
            }
        }
        static Thread runner;

        static void Main(string[] args)
        {
            runner = new Thread(new ThreadStart(procedure));
            Console.WriteLine("Here!");
            runner.Start();
            Console.WriteLine("And now here...");

        }
    }