C# 如何使用c类任务乘法矩阵和向量#
如何使用类任务将矩阵乘以向量? 我不明白我在代码中可以在哪里使用任务。有什么想法吗C# 如何使用c类任务乘法矩阵和向量#,c#,multithreading,C#,Multithreading,如何使用类任务将矩阵乘以向量? 我不明白我在代码中可以在哪里使用任务。有什么想法吗 public static int[] matxvecTask(int[,] mat, int[] vec) //функция умножения матрицы на вектор Task { Task[] tasks = new Task[4] { new Task(() => Console.WriteLine("1")), new Task(()
public static int[] matxvecTask(int[,] mat, int[] vec) //функция умножения матрицы на вектор Task
{
Task[] tasks = new Task[4]
{
new Task(() => Console.WriteLine("1")),
new Task(() => Console.WriteLine("2")),
new Task(() => Console.WriteLine("3")),
new Task(() => Console.WriteLine("4"))
};
foreach(var t in tasks)
{
t.Start();
}
Task.WaitAll(tasks);
int[] res = new int[mat.GetLength(0)] ;
for (int i = 0; i < mat.GetLength(0); i++)
{
for (int j = 0; j < mat.GetLength(1); j++)
{
res[i] += mat[i, j] * vec[j];
}
}
return res;
}
public static int[]matxvecTask(int[,]mat,int[]vec)//
{
任务[]任务=新任务[4]
{
新任务(()=>Console.WriteLine(“1”)),
新任务(()=>Console.WriteLine(“2”)),
新任务(()=>Console.WriteLine(“3”)),
新任务(()=>Console.WriteLine(“4”))
};
foreach(任务中的var t)
{
t、 Start();
}
Task.WaitAll(任务);
int[]res=新int[mat.GetLength(0)];
for(int i=0;i
老实说,你的问题很不清楚。无论如何,这段代码现在使用了一个任务。确保至少使用C#7.1,因为Main()
方法的已用签名在以前的语言规范中不是有效的入口点
internal class Program
{
private static async Task Main(string[] args)
{
int[,] mat = new int[3, 3];
int[] vec = new int[3];
int[] result = await Task.Run(() => matxvecAsync(mat, vec));
Console.WriteLine($"Execution of '{nameof(matxvecAsync)}()' finished");
Console.ReadLine();
}
private static int[] matxvecAsync(int[,] mat, int[] vec)
{
int[] res = new int[mat.GetLength(0)];
for (int i = 0; i < mat.GetLength(0); i++)
{
for (int j = 0; j < mat.GetLength(1); j++)
{
res[i] += mat[i, j] * vec[j];
}
}
return res;
}
}
内部类程序
{
专用静态异步任务主(字符串[]args)
{
int[,]mat=新的int[3,3];
int[]vec=新的int[3];
int[]result=wait Task.Run(()=>matxvecsync(mat,vec));
WriteLine($“执行{nameof(matxvecAsync)}()'已完成”);
Console.ReadLine();
}
私有静态int[]matxvecsync(int[,]mat,int[]vec)
{
int[]res=新int[mat.GetLength(0)];
for(int i=0;i
如果你想要一个质量更好的答案,你需要提供更多关于你的问题的信息
- 为什么要使用任务
- 你认为你能用它解决你的实际问题吗
- 您对这段代码有什么要求
- 你是不是只是好奇这个问题