Làm sao để thể hiện được multithread?

Chào mọi người, em có một hàm tính tổng như sau : tính trung bình cộng của một phần tử với trung bình cộng là trung bình cộng của các phần tử nằm chung quanh nó trong một ma trận và dùng n thread để tính trung bình đó.
còn đây là code của em. Mọi người giúp em với. Em có đọc qua các bài về multithread như chưa hiểu cách để thể hiện được là chạy đúng như multithread

public void TinhTong()
{
    int n = MT.GetLength(0);
    int m = MT.GetLength(1);
    TBCong = new double[n, m];
    for (int i = 0; i < MT.GetLength(0); i++)
    {
        //Thread.Sleep(1000);
        for (int j = 0; j < MT.GetLength(1); j++)
        {
            Thread.Sleep(1000);
            if (i == 0 && j == 0)
                TBCong[i, j] = (MT[i, j + 1] + MT[i + 1, j] + MT[i + 1, j + 1]) / 3;
            else if (i == 0 && j == m - 1)
                TBCong[i, j] = (MT[i, j - 1] + MT[i + 1, j] + MT[i + 1, j - 1]) / 3;
            else if (i == n - 1 && j == 0)
                TBCong[i, j] = (MT[i - 1, j] + MT[i - 1, j + 1] + MT[i, j + 1]) / 3;
            else if (i == n - 1 && j == m - 1)
                TBCong[i, j] = (MT[i - 1, j] + MT[i - 1, j - 1] + MT[i, i - 1]) / 3;
            else if (i == 0 && j > 0 && j < m - 1)
                TBCong[i, j] = (MT[i, j - 1] + MT[i + 1, j + 1] + MT[i + 1, j] + MT[i + 1, j + 1] + MT[i, j + 1]) / 5;
            else if (i == n - 1 && j > 0 && j < m - 1)
                TBCong[i, j] = (MT[i - 1, j - 1] + MT[i, j + 1] + MT[i - 1, j] + MT[i - 1, j + 1] + MT[i, j + 1]) / 5;
            else if (j == 0 && i > 0 && i < m - 1)
                TBCong[i, j] = (MT[i - 1, j] + MT[i - 1, j + 1] + MT[i, j + 1] + MT[i + 1, j + 1] + MT[i + 1, j]) / 5;
            else if (j == m - 1 && i > 0 && i < m - 1)
                TBCong[i, j] = (MT[i - 1, j - 1] + MT[i - 1, j] + MT[i, j - 1] + MT[i + 1, j - 1] + MT[i + 1, j]) / 5;
            else if (i != 0 && j != 0 && i != n - 1 && j != m - 1)
                TBCong[i, j] = (MT[i - 1, j - 1] + MT[i - 1, j] + MT[i - 1, j + 1] + MT[i, j - 1] + MT[i, j + 1] + MT[i + 1, j - 1] + MT[i + 1, j] + MT[i + 1, j + 1]) / 8;
        }
    }
}

Đây là chạy ở hàm main()

Thread[] thr = new Thread[5];
for(int i = 0; i<5; i++)
{
    thr[i] = new Thread(new ThreadStart(Mythr.TinhTong));
    //Thread.Sleep(1000);
    Console.WriteLine("thr{0} hoan thanh", i+1);
}
foreach(Thread x in thr)
{

    x.Start();
}

Em tạo ra 5 thread để thực hiện công việc tính trung bình đó.

Code e đưa lên thiếu thì fai ? MT là gì vậy e???
A có ví dụ về MultiThread, e có thể tham khao ở đây.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;

namespace abc
{
    class Program
    {
        static void Main(string[] args)
        {

            //Tạo 5 thread khác sẽ cho chạy song song với nhau
            for (int i = 0; i < 5; i++)
            {
                Thread thread = new Thread(() => ThreadJob(i)); //Đơn giản là gọi hàm ThreadJob có tham số thôi. Nếu muốn biết chi tiết, e tìm hiểu thêm về `Lambda expression`
                thread.Start();
                Thread.Sleep(500);
            }

            Console.ReadLine();
        }
        static void ThreadJob(int stt)
        {
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine("thread {0} : Print : {1}", stt, i);
                Thread.Sleep(1000);
            }
        }
    }
}

Dạ, MT là mảng 2 chiều đọc từ file matran.text đó anh. Mà anh ơi, giả sử em có 10 hàm trong 1 class. giờ em muốn thực hiện 10 cái hàm đó, trong khi em tạo ra 5 thread trong vòng for. Liệu có thể thực hiện cái giả sư đó ko anh ? @tuancoi2506

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?