相关疑难解决方法(0)

更快替代嵌套循环?

我需要创建一个数字组合列表.数字很​​小所以我可以使用byte而不是int.但是,它需要许多嵌套循环才能获得所有可能的组合.我想知道是否有更有效的方式来做我想要的事情.到目前为止的代码是:

var data = new List<byte[]>();
for (byte a = 0; a < 2; a++)
for (byte b = 0; b < 3; b++)
for (byte c = 0; c < 4; c++)
for (byte d = 0; d < 3; d++)
for (byte e = 0; e < 4; e++)
for (byte f = 0; f < 3; f++)
for (byte g = 0; g < 3; g++)
for (byte h = 0; h < …
Run Code Online (Sandbox Code Playgroud)

c# combinations

85
推荐指数
7
解决办法
1万
查看次数

多个Parallel.ForEach调用,MemoryBarrier?

我有一堆数据行,我想使用Parallel.ForEach来计算每一行的某些值,就像这样......

class DataRow
{
    public double A { get; internal set; }
    public double B { get; internal set; }
    public double C { get; internal set; }

    public DataRow()
    {
        A = double.NaN;
        B = double.NaN;
        C = double.NaN;
    }
}

class Program
{
    static void ParallelForEachToyExample()
    {
        var rnd = new Random();
        var df = new List<DataRow>();

        for (int i = 0; i < 10000000; i++)
        {
            var dr = new DataRow {A = rnd.NextDouble()};
            df.Add(dr);
        }

        // …
Run Code Online (Sandbox Code Playgroud)

c# multithreading task-parallel-library parallel.foreach

5
推荐指数
1
解决办法
1118
查看次数