介绍
Silverlight 2.0 使用Lock, Interlocked, EventWaitHandle, Monitor来实现线程同步
    Lock - 确保代码块完成运行,而不会被其他线程中断
    Interlocked - 为多个线程共享的变量提供原子级的操作
    EventWaitHandle - 通知其他线程是否可入的类
    Monitor - 提供同步访问对象的机制
    ThreadStaticAttribute - 所指定的静态变量对每个线程都是唯一的


在线DEMO
http://www.cnblogs.com/webabcd/archive/2008/10/09/1307486.html


示例
1、Lock.xaml
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute<UserControl x:Class="Silverlight20.Thread.Lock"
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml">
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    
<StackPanel HorizontalAlignment="Left" Margin="5">
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute        
<TextBlock x:Name="txtMsg" />
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    
</StackPanel>
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
</UserControl>
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute

Lock.xaml.cs
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttributeusing System;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Collections.Generic;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Linq;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Net;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Controls;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Documents;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Input;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Media;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Media.Animation;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Shapes;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
namespace Silverlight20.Thread


2、Interlocked.xaml
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute<UserControl x:Class="Silverlight20.Thread.Interlocked"
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml">
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    
<StackPanel HorizontalAlignment="Left" Margin="5">
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute        
<TextBlock x:Name="txtMsg" />
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    
</StackPanel>
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
</UserControl>
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute

Interlocked.xaml.cs
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttributeusing System;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Collections.Generic;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Linq;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Net;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Controls;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Documents;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Input;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Media;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Media.Animation;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Shapes;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
namespace Silverlight20.Thread


3、EventWaitHandle.xaml
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute<UserControl x:Class="Silverlight20.Thread.EventWaitHandle"
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml">
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    
<StackPanel HorizontalAlignment="Left" Margin="5">
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute        
<TextBlock x:Name="txtAutoResetEvent" />
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute        
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute        
<TextBlock x:Name="txtManualResetEvent" />
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    
</StackPanel>
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
</UserControl>
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute

EventWaitHandle.xaml.cs
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttributeusing System;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Collections.Generic;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Linq;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Net;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Controls;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Documents;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Input;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Media;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Media.Animation;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Shapes;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
namespace Silverlight20.Thread


4、Monitor.xaml
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute<UserControl x:Class="Silverlight20.Thread.Monitor"
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml">
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    
<StackPanel HorizontalAlignment="Left" Margin="5">
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute        
<TextBlock x:Name="txtMsg" />
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    
</StackPanel>
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
</UserControl>
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute

Monitor.xaml.cs
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttributeusing System;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Collections.Generic;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Linq;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Net;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Controls;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Documents;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Input;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Media;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Media.Animation;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Shapes;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
namespace Silverlight20.Thread
}


5、ThreadStaticAttribute.xaml
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute<UserControl x:Class="Silverlight20.Thread.ThreadStaticAttribute"
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml">
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    
<StackPanel HorizontalAlignment="Left" Margin="5">
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute        
<TextBlock x:Name="txtMsg" />
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute        
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute        
<TextBlock x:Name="txtMsg2" />
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute    
</StackPanel>
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
</UserControl>
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute

ThreadStaticAttribute.xaml.cs
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttributeusing System;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Collections.Generic;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Linq;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Net;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Controls;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Documents;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Input;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Media;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Media.Animation;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
using System.Windows.Shapes;
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
2.0线程之Lock, Interlocked, EventWaitHandle, Monitor, ThreadStaticAttribute
namespace Silverlight20.Thread

相关文章: