为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Parallel.ForEach 不带列表

使用 Parallel.ForEach 不带列表

C#
翻翻过去那场雪 2021-11-28 18:38:09
我想Parallel.ForEach用作一种多线程方法,在没有列表或文件读取的情况下执行代码。我想这样做:Parallel.ForEach{      Console.WriteLine("test");}所以它会test不停地写。我将使用一个IF语句来检查它是否应该停止或不。可以这样使用Parallel.ForEach吗?任何帮助,将不胜感激。谢谢!
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

多线程这不会实现任何目标,但如果您坚持:


bool _shouldStop { get; set; } = false;

bool _shouldStopSecondThread { get; set; } = false;


public static Main(string[] args)

{


Thread thread = new Thread(print);

Thread anotherThread = new Thread(anotherPrint);

thread.Start();

anotherThread.Start();


//your code here while the worker writes "Test" to console


if(condition) {

   _shouldStop=true;

   _shouldStopSecondThread=false; 

}

}    

//...


public void print()

{

   while (!_shouldStop)

   {

       Console.WriteLine("test");

   }

   Console.WriteLine("worker terminated");

}


public void anotherPrint()

{

   while (!_shouldStopSecondThread)

   {

       Console.WriteLine("test");

   }

   Console.WriteLine("worker terminated");

}


查看完整回答
反对 回复 2021-11-28
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

您想要的不是很清楚,但您可以尝试这种方法:


        var parallelDrege = Environment.ProcessorCount;

        while (true)

        {

            Parallel.For(0, parallelDrege, t =>

            {

                Console.WriteLine("test");

            });

        }

将 parallelDegre 设置为所需的值,并注意每个批次都将并行处理,但批次之间是一个连续的过程。


希望这有帮助!


查看完整回答
反对 回复 2021-11-28
  • 2 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信