如何在 C# 中并行运行两个线程 [关闭]
Posted
技术标签:
【中文标题】如何在 C# 中并行运行两个线程 [关闭]【英文标题】:How to run two threads parallel in C# [closed] 【发布时间】: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。为此使用单个线程,除非它是一些人为的家庭作业。如果你真的需要两个线程,那么一个线程在做什么并不重要。
嗯,教练有东西的想法。我会问他们。
【参考方案1】:
当您启动两个单独的线程时,您无法控制开箱即用的内部进程。
如果你想在线程之间实现某种并发,你需要构建一个逻辑包装在一个锁定对象中的方法,所以该方法一次只执行一次,然后你让你的线程调用那个方法。
那还是用一个线程。
【讨论】:
以上是关于如何在 C# 中并行运行两个线程 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在基于 C# 的 Windows 服务中处理以不同时间间隔并行运行的多个任务?