01/10/2018, 16:17
Đồng bộ hóa thread trong C#
Mọi người cho em hỏi.
EM có 1 class Count.
public object _object { get; set; }
public int total { get; set; }
public void Sub()
{
for (int i = 0; i < 100; i++)
{
lock (_object)
{
total--;
Console.WriteLine(total);
}
}
}
public void Add()
{
for (int i = 0; i < 100; i++)
{
lock (_object)
{
total++;
Console.WriteLine(total);
}
}
}
Hàm main trong class Program:
class Program
{
static void Main(string[] args)
{
object shared = new object();
Count t = new Count() { _object=shared};
Thread t1 = new Thread(new ThreadStart(t.Add));
Thread t2 = new Thread(new ThreadStart(t.Sub));
t1.Start();
t2.Start();
Console.ReadKey();
}
}
Ý em muốn nó chạy hàm Add toàn bộ rồi mới chạy hàm sub ,nó sẽ hiển thị 1 2 3 4 — 99 rồi 99… 98 97…0
nhưng ở đây nó vẫn chạy ko theo thứ tự lúc Add lúc Sub.
Em sai chỗ nào ạ
Bài liên quan
Bạn tham khảo ở link này nhé.