zoukankan      html  css  js  c++  java
  • C#WinForm实现线程的启动、挂起、恢复、终止操作

    public partial class Form1 : Form
        {
            Thread t = null;
            public Form1()
            {
                InitializeComponent();
            }
    
           
            
            private void button1_Click(object sender, EventArgs e)
            {
                t = new Thread(new ThreadStart(Run));
                t.Start();
            }
    
            public  void Run()
            {
                for (int i = 1; i < 20000; i++)
                {
                    this.Invoke(new Action(
                        () => {
                            this.richTextBox1.Text = "第" + i + "条记录同步完成";
                            this.progressBar1.Value = i / 200;
                            this.label2.Text = i / 200 + "%";
                        }
                        ));
                    
                    
                    Thread.Sleep(10);
                }
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                Thread.Sleep(5000);
                
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                if (t.ThreadState!=ThreadState.Suspended)
                {
                    t.Suspend();
                }
                
                
            }
    
            private void button4_Click(object sender, EventArgs e)
            {
                if (t.ThreadState == ThreadState.Suspended)
                {
                    t.Resume();
                }
            }
    
            private void button5_Click(object sender, EventArgs e)
            {
                t.Abort();
            }
            string str = "";
            private void button6_Click(object sender, EventArgs e)
            {
                t = new Thread(new ParameterizedThreadStart(RunB));
                A a = new A() { X = this.textBox1.Text, Y = this.textBox3.Text };
                t.Start(a);//启动线程
            }
    
            public void Run1()
            {
                str = "[" + this.textBox1.Text + "]";
                for (int i = 1; i < 20000; i++)
                {
                    this.Invoke(new Action(
                        () => {
                            this.richTextBox1.Text = str+"第" + i + "条记录同步完成";
                            this.progressBar1.Value = i / 200;
                            this.label2.Text = i / 200 + "%";
                        }
                        ));
    
    
                    Thread.Sleep(10);
                }
            }
    
            private void RunB(object a)
            {
                for (int i = 1; i < 20000; i++)
                {
                    // Invoke (委托 )
                    // Action ( lambda )
    
                    // Invoke ( new Action (   ()=>{}   ));
    
                    this.Invoke(new Action(
                        () => {
                            this.richTextBox1.Text = ((A)a).X + "第" + i + "条记录同步完成" + ((A)a).Y;
                            this.progressBar1.Value = i / 200;
    
                            this.label2.Text = i / 200 + "%";
                        }
                        ));
                    Thread.Sleep(10);
                }
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                Control.CheckForIllegalCrossThreadCalls = false;
                
    
            }
    
            class A
            {
                public string X { get; set; }
                public string Y { get; set; }
            }
        }
    
  • 相关阅读:
    php----爬虫(爬取豆瓣演员信息,搜索页)遇到的问题
    python-写爬虫时遇到的问题 TimeoutError: [WinError 10060]
    聚沙成塔
    买手机,继续纠结中
    问题不绕弯,死磕
    死磕,死磕死磕
    学而不践则罔
    越是忙的时候,兴趣越多
    周末小总结
    幸福和需求
  • 原文地址:https://www.cnblogs.com/xuxueming/p/11913702.html
Copyright © 2011-2022 走看看