zoukankan      html  css  js  c++  java
  • .net 4.5 Test Async Task 异步测试

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net.Http;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using System.Windows.Threading;
    using System.Threading;
    using System.IO;
    namespace TestAsyncHttpClient
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                t.Interval = TimeSpan.FromMilliseconds(30);
                t.Tick += t_Tick;
                t.Start();
                save("6666666666666");
           
            }
            int cnt = 0;
            object lockObj = new object();
            void t_Tick(object sender, EventArgs e)
            {
                txt2.Text = "" + DateTime.Now.Ticks;//用于辅助显示是否btnTest_Click 卡住了UI
                 
            }
            DispatcherTimer t = new DispatcherTimer();
    
            private async void btnTest_Click(object sender, RoutedEventArgs e)
            {
                for (int i = 1; i <= 200; i++)
                {
         
                  save("tttttttttt " + i);
        
                   // sleep("para"+ i);
                }
           
                return;
                string urlString = string.Empty;
                using (HttpClient client = new HttpClient())
                {
                    //异步获取“http://10.32.112.82/epms/”内容(线程返回)。用户界面依旧可以操作
                //  urlString = await client.GetStringAsync(@"http://www.cnblogs.com");
                  await  sleep("");
                  MessageBox.Show("hello");
    
                }
    
               // txt.Text = urlString;
    
            }
    
            StringBuilder sb = new StringBuilder();
            async Task sleep(string p) {
    
              
                await    Task.Run(() =>
                {
                    lock (lockObj) {
    
                        cnt++;  
                    }
    
                    sb.Append("-" + cnt);
                    Thread.Sleep(1000);
                    Dispatcher.Invoke(() =>
                    {
                        txtLog.AppendText("" + p + "   count:" + cnt + "
    ");
                        txtLog.ScrollToEnd();
                    });
    
                });
    
         
              //  MessageBox.Show("hello");
    
            }
    
    
    
           async  void save(string s) {
    
                string sFile =AppDomain.CurrentDomain.BaseDirectory + "\t.txt";
                if (File.Exists(sFile) == false) {
                
                 FileStream fs=  File.Create(sFile);
                  fs.Close();
                  fs = null;
    
                }
    
                using (Stream stream = File.Open(sFile, FileMode.Append, FileAccess.Write))
                {
                    StreamWriter w = new StreamWriter(stream, Encoding.UTF8);
                    w.Write("trrytryrytyryrytrytrrytryrytyryrytrytrrytryrytyryrytrytrrytryrytyryrytrytrrytryrytyryrytrytrrytryrytyryrytrytrrytryrytyryrytrytrrytryrytyryrytrytrrytryrytyryrytrytrrytryrytyryrytrytrrytryrytyryrytrytrrytryrytyryrytrytrrytryrytyryrytry" + s + "
    ");
                    w.Close();
                    stream.Close(); stream.Dispose();
                    await Task.Delay(200000);//延时这个方法体
    
                }
            
            }
    
    
            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                MessageBox.Show(sb.ToString());
            }
    
    
        }
    }
    

     

    UI

    <Window x:Class="TestAsyncHttpClient.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <Button Name="btnTest" Content="Test" HorizontalAlignment="Left" Margin="88,54,0,0" VerticalAlignment="Top" Width="192" Height="38" Click="btnTest_Click"/>
            <TextBox Name="txt" AcceptsReturn="True" HorizontalAlignment="Left" Height="49" Margin="88,226,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="355"/>
            <TextBox Name="txt2"  HorizontalAlignment="Left" Margin="88,10,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Width="288" Height="39"/>
            <RichTextBox Name="txtLog" Margin="88,111,74,99"/>
            <Button Content="Button" HorizontalAlignment="Left" Margin="311,54,0,0" VerticalAlignment="Top" Width="111" Height="38" Click="Button_Click_1"/>
    
        </Grid>
    </Window>
    

      

     

  • 相关阅读:
    NumPy 位运算
    NumPy 数组迭代
    NumPy 广播
    NumPy 基于数值区间创建数组
    NumPy 数组切片
    NumPy 基于已有数据创建数组
    NumPy 数组创建
    NumPy 数据类型
    NumPy ndarray
    区块链技术学习指引
  • 原文地址:https://www.cnblogs.com/wgscd/p/11177387.html
Copyright © 2011-2022 走看看