以前,我在这样的线程中运行了一个方法:
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();
}
这不再按预期运行线程。程序停止,我认为是由于主线程上运行了新线程。
为什么它不再在单独的线程上运行?
答案 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...");
}
}