【发布时间】:2021-11-10 13:27:25
【问题描述】:
问题:两个线程一次应该执行一行。所以下面的输出应该是 i , j, i , j 等等。但是给定的一段代码的输出是不一致的。我也尝试过使用yield函数,结果是一样的。有谁能帮帮我吗?
static void Main()
{
var t1=new Thread(p1);
var t2=new Thread(p2);
t1.Start();
t2.Start();
}
static void p1(){
for(int i=0;i<10;i++){
Console.WriteLine("i");
Thread.Sleep(1);
}
}
static void p2(){
for(int i=0;i<10;i++){
Console.WriteLine("j");
Thread.Sleep(1);
}
}
【问题讨论】:
-
Two thread should execute one line at a time.然后使用一个线程而不是两个线程。不需要第二个线程。 -
Please do not upload images of code 但以文本形式提供
-
@AdamKaczmarski:“所以下面的输出应该是 i , j, i , j 等等。”
-
我同意@mjwills。为此使用单个线程,除非它是一些人为的家庭作业。如果你真的需要两个线程,那么一个线程在做什么并不重要。
-
嗯,教练有东西的想法。我会问他们。
标签: c# .net multithreading