一、创建多线程
<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运行:
<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运行: