在C#中如何获得对堆栈的同步访问
要获得对堆栈的同步访问,代码如下-
示例
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("元素数 = "+stack.Count);
Console.WriteLine("同步访问...");
lock(stack.SyncRoot) {
foreach(Object ob in stack) {
Console.WriteLine(ob);
}
}
}
}输出结果
这将产生以下输出-
Stack... 500 400 300 200 100 元素数 = 5 同步访问... 500 400 300 200 100
现在让我们来看另一个示例-
示例
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("\nSynchronize access...");
lock(stack.SyncRoot) {
foreach(Object ob in stack) {
Console.WriteLine(ob);
}
}
}
}输出结果
这将产生以下输出-
Stack... Justin Taylor Selena Katie Amy Tom Philips Tim Jacob 同步访问... Justin Taylor Selena Katie Amy Tom Philips Tim Jacob