zoukankan      html  css  js  c++  java
  • C# async await 异步例子

     public const string  Linefeed= " ";
            private void BtnasyncAwait_Click(object sender, RoutedEventArgs e)
            {
                SetTextShow("111 balabala. My Thread ID is :" + Thread.CurrentThread.ManagedThreadId);
                 AsyncMethod();
                SetTextShow("222 balabala. My Thread ID is :" + Thread.CurrentThread.ManagedThreadId);

            }
     
            private void SetTextShow(string textContent)
            {
                txtInfo.Dispatcher.Invoke(new Action(()=> { txtInfo.Text += DateTime.Now.ToString() + " " + textContent + Linefeed; }));
               
            }
            private void ClearTextShow()
            {
                txtInfo.Dispatcher.Invoke(new Action(() => { txtInfo.Text = string.Empty; }));
              
            }
      private async Task AsyncMethod()
            {
                var ResultFromTimeConsumingMethod = TimeConsumingMethod();
                string Result = await ResultFromTimeConsumingMethod + " + AsyncMethod. My Thread ID is :" + Thread.CurrentThread.ManagedThreadId;
                SetTextShow(Result);
                //返回值是Task的函数可以不用return
            }
     
            //这个函数就是一个耗时函数,可能是IO操作,也可能是cpu密集型工作。
            private Task<string> TimeConsumingMethod()
            {
                var task = Task.Run(() => {
                    SetTextShow("Helo I am TimeConsumingMethod. My Thread ID is :" + Thread.CurrentThread.ManagedThreadId);
                    Thread.Sleep(5000);
                    SetTextShow("Helo I am TimeConsumingMethod after Sleep(5000). My Thread ID is :" + Thread.CurrentThread.ManagedThreadId);
                    return "Hello I am TimeConsumingMethod";
                });
                return task;
            }
  • 相关阅读:
    20169205 2016-2017-2 《移动平台应用开发实践》第4周学习总结
    20169205 2016-2017-2《网络攻防》第4周总结
    20169205 2016-2017-2 《移动平台应用开发实践》第3周学习总结
    tcpdump使用
    wireshark使用
    20169205 2016-2017-2《网络攻防》第3周总结
    OpenSSH/PuTTY/SSH使用
    Aircrack使用
    Metasploit使用
    20155325 2017-2018 1 《信息安全系统设计基础》 第十周学习总结
  • 原文地址:https://www.cnblogs.com/zdc-shine/p/11392845.html
Copyright © 2011-2022 走看看