Silverlight学习笔记(五)-----使用线程模拟实现Dispatcher倒计时效果
2012-01-14 15:10
375 查看
XAML:
C#:
效果:
<StackPanel x:Name="LayoutBoot"> <!--创建border--> <Border x:Name="border" Background="AliceBlue" Margin="5" BorderBrush="Black" BorderThickness="3" CornerRadius="5"> </Border> <!--内嵌一个stackpanel画板--> <StackPanel Orientation="Horizontal"> <!--开始线程按钮--> <Button x:Name="btnStart" Width="100" Height="30" Content="开始线程" Click="btnStart_Click" Margin="10"> </Button> <!--延时线程按钮--> <Button x:Name="btnDelay" Width="100" Height="30" Content="延时2s" Click="btnDelay_Click" Margin="10"> </Button> </StackPanel> </StackPanel>
C#:
namespace ThreadSample { public partial class MainPage : UserControl { private static TextBlock tbk; private System.Threading.Thread myThread; public MainPage() { InitializeComponent(); //添加文本控件tbk tbk = new TextBlock() { FontSize=24, Width=300, Height=100 }; //动态加载对象tbk border.Child = tbk; //创建新线程 myThread = new Thread(new ThreadStart(SetText)); //设置为后台线程 myThread.IsBackground = true; } public static void SetText() { int i = 60; while (i > 0) { tbk.Dispatcher.BeginInvoke(delegate() { tbk.Text = "离线程结束还有 " + i + " 秒"; }); i--; Thread.Sleep(1000); } } private void btnStart_Click(object sender, RoutedEventArgs e) { myThread.Start(); } private void btnDelay_Click(object sender, RoutedEventArgs e) { myThread.Join(2000); } } }
效果:
![](http://pic002.cnblogs.com/images/2012/299091/2012011415080651.jpg)
相关文章推荐
- JavaScript 实现使用时间差来转换倒计时效果。
- 使用NSTimer实现倒计时,Iphone幻灯片效果+背景音乐,
- js实现60秒倒计时效果(使用了jQuery)
- C#使用Shader实现夜幕降临倒计时的效果
- 使用 GCD 实现倒计时效果
- Android使用Kotlin和RxJava 2.×实现短信验证码倒计时效果
- iOS 使用GCD实现倒计时效果
- Android使用CountDownTimer实现倒计时效果
- Android中使用TextView实现高仿京东淘宝各种倒计时效果
- Fresceo使用详解--用Java代码实现xml配置的效果
- JavaScript提高:002:ASP.NET使用easy UI实现tab效果
- 使用 CSS3 实现 3D 图片滑块效果
- setInterval的使用练习——实现网页标题title的滚动效果。
- Android 使用View的旋转实现漂亮的动画效果
- iOS8使用UIVisualEffectView实现模糊效果
- 使用UGUI实现多层血条效果
- React学习笔记:使用jquery实现动画效果淡入淡出
- jQuery使用drag效果实现自由拖拽div
- css 使用background背景实现border边框效果
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果