Ví dụ 1
Sử dụng lock trên SyncRoot để đồng bộ hóa truy cập Stack:
using System;
using System.Collections;
public class Demo {
public static void Main() {
Stack stack = new Stack();
stack.Push(100);
stack.Push(200);
stack.Push(300);
stack.Push(400);
stack.Push(500);
Console.WriteLine("Stack...");
foreach(Object ob in stack) {
Console.WriteLine(ob);
}
Console.WriteLine("Số phần tử = " + stack.Count);
Console.WriteLine("Truy cập đồng bộ...");
lock(stack.SyncRoot) {
foreach(Object ob in stack) {
Console.WriteLine(ob);
}
}
}
}
Kết quả
Stack...
500
400
300
200
100
Số phần tử = 5
Truy cập đồng bộ...
500
400
300
200
100
Ví dụ 2
Ví dụ với Stack chứa chuỗi:
using System;
using System.Collections;
public class Demo {
public static void Main() {
Stack stack = new Stack();
stack.Push("Jacob");
stack.Push("Tim");
stack.Push("Philips");
stack.Push("Tom");
stack.Push("Amy");
stack.Push("Katie");
stack.Push("Selena");
stack.Push("Taylor");
stack.Push("Justin");
Console.WriteLine("Stack...");
foreach(Object ob in stack) {
Console.WriteLine(ob);
}
Console.WriteLine("\nTruy cập đồng bộ...");
lock(stack.SyncRoot) {
foreach(Object ob in stack) {
Console.WriteLine(ob);
}
}
}
}
Kết quả
Stack...
Justin
Taylor
Selena
Katie
Amy
Tom
Philips
Tim
Jacob
Truy cập đồng bộ...
Justin
Taylor
Selena
Katie
Amy
Tom
Philips
Tim
Jacob