zoukankan      html  css  js  c++  java
  • C# task处理 IO,网络请求, 耗时处理 带参数,防 UI假 简单示例

    winfrom 设计如下:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApp7
    {
        public partial class Form1 : Form
        {
           
            private int bt_exe_enabled = 0;// 1 按键2 正在执行任务中,请稍后; 0 按键1 未在执行任务中
    
            public Form1()
            {
                InitializeComponent();
            }
    
            public string makeSomething(string m)
            {
                Thread.Sleep(5000);//模拟耗时
    
                m = m+" 制造任务 执行完毕 
    *******
     ";
                label1.Text += m;
                bt_exe_enabled = 0;
                return m;
            }
    
    
            private void Form1_Load(object sender, EventArgs e)
            {
               Control.CheckForIllegalCrossThreadCalls = false;//屏蔽与UI之间的线程检查
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                if (bt_exe_enabled == 1) 
                {
                    MessageBox.Show("任务正在执行中,请稍后……");
                    return;            
                }
                bt_exe_enabled = 1;
                label1.Text = "消息:";
                try
                {
                    if (string.IsNullOrEmpty(richTextBox1.Text.Trim()))
                    {
                        MessageBox.Show("请输入需要制造的事物");
                        return;
                    }
    
                    bt_exe.Enabled = false;
    
                    Task<string> task = Task.Run(() =>
                    {
                        return makeSomething(richTextBox1.Text.Trim());
                    });
    
                }
                catch (Exception)
                {
    
                    throw;
                }
                finally
                {
                    bt_exe.Enabled = true;
                }
    
            }
        }
    }
  • 相关阅读:
    [LeetCode] 5. 最长回文子串
    [LeetCode] 572. 另一个树的子树
    [LeetCode] 983. 最低票价
    [LeetCode] 98. 验证二叉搜索树
    [LeetCode] 3. 无重复字符的最长子串
    [LeetCode] 21. 合并两个有序链表
    [LeetCode] 202. 快乐数
    [LeetCode] 面试题 01.07. 旋转矩阵
    [LeetCode] 面试题56
    个人网站实现支持https
  • 原文地址:https://www.cnblogs.com/Apeak/p/13322709.html
Copyright © 2011-2022 走看看