Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Tính tổng một array bằng Thread trong C#

21:20 17-01-2018 3.061 lượt xem 3 bình luận 11:32 18-01-2018

Nhập 1 dãy số bất kì. Tính tổng của dãy số sử dụng thread.
Thread 1 tính nửa dãy số đầu.
thread 2 tính nửa còn lại.
thead 1 chạy xong thread 2 mới chạy. 2 thread chạy xong thì in tổng của cả dãy số

(Xin code)

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
C# learner đã bình luận 21:56 17-01-2018

Mình chưa kiểm tra nhưng có thể đc

 

//int[] arrayNum là cái bạn cho người dùng nhập

List<int> Thread1 = new List<int>();
List<int> Thread2 = new List<int>();
for(int i = 0; i < arrayNum.Length; i++)
{
   if(i < arrayNum.Length / 2)
      Thread1.Add(arrayNum[i]);
   else
      Thread2.Add(arrayNum[i]);
}

//Chuyển List lại thành array

int[] arrayThread1 = Thread1.ToArray()
int[] arrayThread2 = Thread2.ToArray()

Thread nè

//Cái này là field nha
int sum1 = 0, sum2 = 0;
//sum1 , sum2 là kết quả của phép tính tổng

Thread thd = new Thread(new ThreadStart(ThreadCalc1));
Thread thd2 = new Thread(new ThreadStart(ThreadCalc2));

thd1.Start();

while(true)
{
   if(thd.ThreadState == ThreadState.Stopeed)
   {
      thd2.Start();
      break;
   }
}

while(true)
{ 
   if(thd2.ThreadState == ThreadState.Stopped)
      break;
}

//Tính tổng
int result = sum1 + sum2;

Cái method tính tổng thì chỉ cần lấy từng cái cộng vào là đc (Chắc biết thread rồi thì chắc tính tổng cx dễ thỉ)

P/s: mà sao phải dùng thread nhỉ dùng 1 hàm foreach cộng cho nhanh

Câu hỏi mới nhất