微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight之dispatcherTimer 与 线程

 一、创建多线程

 <StackPanel x:Name="LayoutRoot" Background="White">
        <Border x:Name="border" Background="AliceBlue" Margin="5" BorderBrush="Black"  Width="300" BorderThick@R_404_6431@s="3"  CornerRadius="5" />
        <StackPanel Orientation="Horizontal" Width="310">
            <Button x:Name="btn_star" Width="100" Height="30" Click="btn_star_Click" Margin="10" Content="开始倒计时" />
            <Button x:Name="btn_json" Width="100" Click="btn_json_Click" Margin="10" Content="延迟线程" />
        </StackPanel>
    </StackPanel>


C#:

 private static TextBlock txb;
        private Thread newThread;
        public dispatcherTimerAndThread()
        {
            InitializeComponent();
            //将文本txb添加到界面上
            txb = new TextBlock()
            {
                Width = 300,Height = 100,FontSize = 24
            };
            border.Child = txb;
            //创建一个线程并执行线程方法
            newThread = new Thread(dispatcherTimerAndThread.SetText);
        }

        public static void SetText()
        {
            int i = 60;
            while (i > 0)
            {
                txb.dispatcher.BeginInvoke(delegate() { txb.Text = "距离线程结束还有:" + i + "秒"; });
                i--;
                Thread.Sleep(1000);
            }
        }
        private void btn_star_Click(object sender,RoutedEventArgs e)
        {
            newThread.Start();
        }

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


按F5运行:

 

二、利用dispatcherTimer做一个计时器

  
    <Grid x:Name="LayoutRoot" Background="White">
        <Rectangle Fill="Gold" strokeThick@R_404_6431@s="3" Width="300" Height="150"
                   Margin="0,20,0" stroke="Black" RadiusX="5" RadiusY="5">
        </Rectangle>
        <TextBlock x:Name="txb_times" Width="300" Height="50" FontSize="30" Foreground="Red"/>
    </Grid>


C#:

 public timer()
        {
            InitializeComponent();
            //创建dispatcherTimer对象
            dispatcherTimer timers = new dispatcherTimer();
            //设置间隔时间
            timers.Interval = new TimeSpan(0,1);
            //创建处理事件
            timers.Tick += new EventHandler(timers_Tick);
            //开始
            timers.Start();
        }

        void timers_Tick(object sender,EventArgs e)
        {
           //当前时间
            txb_times.Text = "当前时间:" + DateTime.Now.ToLongTimeString();
        }


按F5运行:

@H_404_41@

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐