【问题标题】:How to run two threads parallel in C# [closed]如何在 C# 中并行运行两个线程 [关闭]
【发布时间】: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


【解决方案1】:

当您启动两个单独的线程时,您无法控制开箱即用的内部进程。

如果你想在线程之间实现某种并发,你需要构建一个逻辑包装在一个锁定对象中的方法,所以该方法一次只执行一次,然后你让你的线程调用那个方法。

那还是用一个线程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 2020-12-23
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多