使用c#multithread计算

时间:2017-08-27 12:11:05

标签: c# multithreading task

我是多线程的新手,我通过我在冲浪时学到的东西编写了一个简单的代码。

                Task[] tasks = new Task[B.Col];
                for(int j = 0; j < B.Col; j++)
                {
                    tasks[j] = Task.Run(() =>
                    {
                        for (int k = 0; k < A.Col; k++)
                        {
                            C[i, j] += A[i, k] * B[k, j];
                        }
                    });
                }
                /*
                for(int j = 0; j < B.Col; j++)
                {
                    for(int k = 0; k < A.Col; k++)
                    {
                        C[i, j] += A[i, k] * B[k, j];
                    }
                }
                */

我想检查这是否是多线程以下代码的正确方法。如果此代码效率不高,请您帮我找一个更好的方法吗?

1 个答案:

答案 0 :(得分:1)

要使您的尝试工作成功,您需要进行一些小的修改

// Añadir al colaborador en la tabla de colaboradores.
var persona = db.persona.Find(modelo.donacion.idColaborador);

db.Entry(persona).State = EntityState.Detached;
var colaborador = new colaboradores(persona,modelo.NIF,modelo.cuentaBancaria);

colaborador.personas = persona;
colaborador.idColaborador = persona.id;
db.colaboradores.Add(colaborador);
db.Entry(persona).State = EntityState.Unchanged;

db.SaveChanges();

修改

如果你要投票,请解释原因。 OP发布了一个他试图正常运行的代码示例。我对他的解决方案进行的编辑演示了他需要做些什么来使代码正常运行而没有令人讨厌的惊喜,它在一个控制台应用程序中进行了测试,并且正常工作