您的位置:首页 > 运维架构

Array.SyncRoot Property

2007-11-08 16:38 239 查看
Syntax:

SyncRoot
This property returns a synchronization object for the current array. Arrays are not inherently thread-safe. Synchronize access to the array with the synchronization object.
virtual object SyncRoot{
get;}


Example:

Accesses to arrays are easily synchronized with the lock statement, where the SyncRoot object is the parameter.

using System;
using System.Collections.Generic;
using System.Threading;

public class MyClass
{
public static void Main()
{
Array.Sort(zArray);
Thread t1=new Thread(
new ThreadStart(DisplayForward));
Thread t2=new Thread(
new ThreadStart(DisplayReverse));
t1.Start();
t2.Start();

RL();
}
private static int [] zArray={1,5,4,2,4,2,9,10};
public static void DisplayForward() {
lock(zArray.SyncRoot) {
Console.Write(" Forward: ");
foreach(int number in zArray) {
Console.Write(number+" ");
}
}
}

public static void DisplayReverse() {
lock(zArray.SyncRoot) {
Array.Reverse(zArray);
Console.Write(" Reverse: ");
foreach(int number in zArray) {
Console.Write(number+" ");
}
Array.Reverse(zArray);
}
}

#region Helper methods

private static void WL(object text, params object[] args)
{
Console.WriteLine(text.ToString(), args);
}

private static void RL()
{
Console.ReadLine();
}

private static void Break()
{
System.Diagnostics.Debugger.Break();
}

#endregion
}

o(∩_∩)o...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: