zoukankan      html  css  js  c++  java
  • Silverlight学习笔记2:Silverlight中使用多线程实现倒计时

          说到多线程,首先我们得了解他的应用领域,用在哪、一般当应用程序中需要处理界面逻辑的同时又要去处理其它的逻辑行为,如果是在单线程下那么就要按照顺序依次去完成,如果需要同时完全或者在一件事做到某种程度时再做另外一件事情,就可以通过多线程来进行处理。

         接下来将演示如何利用多线程去实现一个简单的倒计时功能:

    Xaml:
       

    1 <Grid x:Name="LayoutRoot" Background="White">
    2 <StackPanel Name="stackPanel" Orientation="Horizontal">
    3 <Button Name="btnStart" Content="开始" Width="60" Height="20" Click="btnStart_Click" />
    4 <Button Name="btnJoin" Content="延时" Width="60" Height="20" Click="btnJoin_Click" />
    5 </StackPanel>
    6 </Grid>

    C#:

     public partial class MainPage : UserControl
    {
    private static TextBlock tbk;
    private Thread newThread;
    public MainPage()
    {
    InitializeComponent();
    tbk = new TextBlock() { FontSize=12,Width=200,Height=100 , };
    LayoutRoot.Children.Add(tbk);
    newThread = new Thread(MainPage.SetText);
    }

    private void btnStart_Click(object sender, RoutedEventArgs e)
    {
    newThread.Start();
    }

    private void btnJoin_Click(object sender, RoutedEventArgs e)
    {
    newThread.Join(2000);
    }

    public static void SetText()
    {
    int i = 60;
    while (i>0)
    {
    tbk.Dispatcher.BeginInvoke(delegate() { tbk.Text = "倒计时:" + i + ""; });
    i--; Thread.Sleep(1000);
    }


    }
    }

           本文是阅读《Silverlight3.0开发详解与最佳实践》的学习笔记,只是针对于多线程的简要介绍,多线程的使用有利也有弊,其处理复杂,易引发线程争用,死锁等现象。

     

         

  • 相关阅读:
    Spring MVC,绑定数组、集合
    kettle 使用 CARTE 执行
    正交投影矩阵_相机中的透视投影几何——讨论相机中的正交投影
    VS 遇到异常 可能是某个扩展导致的 解决方法 和提升程序管理员权限的方法
    IDEA Community环境搭建笔记
    PHP ROT18加解密
    C# TTS 文字转语音
    软件开发文档【模板】
    java 打印日志 规范建议
    java 死锁 排查 (jstack jconsole jvisualvm jmc)
  • 原文地址:https://www.cnblogs.com/tanliang/p/2184955.html
Copyright © 2011-2022 走看看