Silverlight学习笔记(五)-----使用线程模拟实现Dispatcher倒计时效果


XAML:

 1 <StackPanel x:Name="LayoutBoot">
2 <!--创建border-->
3 <Border x:Name="border" Background="AliceBlue" Margin="5"
4 BorderBrush="Black" BorderThickness="3" CornerRadius="5">
5 </Border>
6 <!--内嵌一个stackpanel画板-->
7 <StackPanel Orientation="Horizontal">
8 <!--开始线程按钮-->
9 <Button x:Name="btnStart" Width="100" Height="30"
10 Content="开始线程"
11 Click="btnStart_Click" Margin="10">
12 </Button>
13 <!--延时线程按钮-->
14 <Button x:Name="btnDelay" Width="100" Height="30"
15 Content="延时2s"
16 Click="btnDelay_Click" Margin="10">
17 </Button>
18 </StackPanel>
19 </StackPanel>



C#:

 1 namespace ThreadSample
2 {
3 public partial class MainPage : UserControl
4 {
5 private static TextBlock tbk;
6 private System.Threading.Thread myThread;
7 public MainPage()
8 {
9 InitializeComponent();
10 //添加文本控件tbk
11 tbk = new TextBlock()
12 {
13 FontSize=24,
14 Width=300,
15 Height=100
16 };
17 //动态加载对象tbk
18 border.Child = tbk;
19 //创建新线程
20 myThread = new Thread(new ThreadStart(SetText));
21 //设置为后台线程
22 myThread.IsBackground = true;
23 }
24
25 public static void SetText()
26 {
27 int i = 60;
28 while (i > 0)
29 {
30 tbk.Dispatcher.BeginInvoke(delegate()
31 {
32 tbk.Text = "离线程结束还有 " + i + "";
33 });
34 i--;
35 Thread.Sleep(1000);
36 }
37 }
38
39 private void btnStart_Click(object sender, RoutedEventArgs e)
40 {
41 myThread.Start();
42 }
43
44 private void btnDelay_Click(object sender, RoutedEventArgs e)
45 {
46 myThread.Join(2000);
47 }
48 }
49 }



效果:

优质内容筛选与推荐>>
1、react-eslintrc
2、iOS 的 Runloop
3、What's DOM?(1)
4、银光志--Silverlight 3.0开发详解与最佳实践
5、Microsoft SQL Server 2005的国际功能(转贴)


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn