Silverlight(25) - 2.0线程之Thread, Timer, BackgroundWorker, ThreadPool
2008-12-31 11:53:47 来源:WEB开发网本文源代码下载地址:
http://flashview.ddvip.com/2008_12/Silverlight.rar
介绍
Silverlight 2.0使用Thread, Timer, BackgroundWorker, ThreadPool来实现多线程开发
Thread - 用于线程的创建和控制的类
Timer - 用于以指定的时间间隔执行指定的方法的类
BackgroundWorker - 用于在单独的线程上运行操作
ThreadPool - 线程池的管理类
示例
1、Thread.xaml
<UserControl x:Class="Silverlight20.Thread.Thread"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel HorizontalAlignment="Left" Margin="5">
<TextBlock x:Name="txtMsg" />
</StackPanel>
</UserControl>
Thread.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace Silverlight20.Thread
{
public partial class Thread : UserControl
{
string result = "";
public Thread()
{
InitializeComponent();
Demo();
}
void Demo()
{
/**//*
* Thread - 用于线程的创建和控制的类
* Name - 线程名称
* IsBackground - 是否是后台线程(对于Silverlight来说,是否是后台线程没区别)
* Start(object parameter) - 启动后台线程
* object parameter - 为后台线程传递的参数
* IsAlive - 线程是否在执行中
* ManagedThreadId - 当前托管线程的唯一标识符
* ThreadState - 指定线程的状态 [System.Threading.ThreadState枚举]
* Abort() - 终止线程
*/
// DoWork 是后台线程所执行的方法(此处省略掉了委托类型)
// ThreadStart 委托不可以带参数, ParameterizedThreadStart 委托可以带参数
System.Threading.Thread thread = new System.Threading.Thread(DoWork);
thread.Name = "ThreadDemo";
thread.IsBackground = true;
thread.Start(1000);
result += thread.IsAlive + "rn";
result += thread.ManagedThreadId + "rn";
result += thread.Name + "rn";
result += thread.ThreadState + "rn";
// thread.Join(); 阻塞调用线程(本例为主线程),直到指定线程(本例为thread)执行完毕为止
// 阻塞调用线程(本例为主线程)
// 如果指定线程执行完毕则继续(本例为thread执行完毕则继续)
// 如果指定线程运行的时间超过指定时间则继续(本例为thread执行时间如果超过5秒则继续)
// 返回值为在指定时间内指定线程是否执行完毕(本例中thread的执行时间为1秒,所以会返回true)
if (thread.Join(5000))
{
result += "指定线程在5秒内执行完毕rn";
}
txtMsg.Text = result;
}
void DoWork(object sleepMillisecond)
{
System.Threading.Thread.Sleep((int)sleepMillisecond);
result += "新开线程执行完毕rn";
}
}
}
Tags:Silverlight 线程 Thread
编辑录入:爽爽 [复制链接] [打 印]- ››silverlight全屏显示图片
- ››Silverlight MVVM 模式(一) 切近实战
- ››Silverlight for Windows Phone 7开发系列(1):...
- ››Silverlight for Windows Phone 7开发系列(2):...
- ››Silverlight for Windows Phone 7开发系列(3):...
- ››Silverlight for Windows Phone 7开发系列(4):...
- ››Silverlight for Symbian
- ››Silverlight3系列(四)数据绑定 Data Binding 1
- ››线程状态图
- ››silverlight2 游戏 1 你能坚持多少秒
- ››Silverlight开发实践--PicZoomShow
- ››Silverlight自定义控件开发 - 令人懊恼的OnApplyT...
更多精彩
赞助商链接