• 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开发详解与最佳实践》的学习笔记,只是针对于多线程的简要介绍,多线程的使用有利也有弊,其处理复杂,易引发线程争用,死锁等现象。

     

         

  • 相关阅读:
    SpringMVC之数据处理及跳转
    SpringMVC之控制器Controller和RestFul风格
    第一个SpringMVC程序
    什么是SpringMVC
    Spring声明式事务
    【嘎】字符串-反转字符串
    【嘎】字符串-字符串中的单词数
    【嘎】二叉树-226. 翻转二叉树
    【嘎】数组-面试题 01.07. 旋转矩阵-看题解
    【嘎】字符串-统计位数为偶数的数字
  • 原文地址:https://www.cnblogs.com/tanliang/p/2184955.html
Copyright © 2020-2023  润新知