zoukankan      html  css  js  c++  java
  • c#中如何跨线程调用windows窗体控件?

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Threading;  //线程操作引用的命名空间
    
    namespace windowform线程操作
    {
    
    
        public delegate void RunDele();//定义一个委托,没有参数
        public partial class Form1 : Form
        {
    
            Thread thread;     //造一个线程对象
            public Form1()
            {
                InitializeComponent();
    
               // Control.CheckForIllegalCrossThreadCalls = false;  //告诉程序不要检查线程的安全性,比较省力,但会对程序造成不好影响
            }
            bool isRun = true;
            //点击启动
            private void button1_Click(object sender, EventArgs e)
            {
                thread = new Thread(new ThreadStart(Run));  
    
                thread.IsBackground = true;
    
                thread.Start();   //委托开始执行
    
               /*& button1.Enabled = false;
                long i = 0;
                while (isRun)
                {
                    listView1.Items.Insert(0,i.ToString());
    
                    i++;
                }
    
                isRun = true;*/
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                isRun = false;
                button1.Enabled = true ;
            }
            long i = 0;
            void Run()
            {
               // button1.Enabled = false;
            
                while (isRun)
                {
                  
                   RunDele();
               }
    
                isRun = true;
            }
    
            void RunDele()
            {
                if (listView1.InvokeRequired)
                {
                    RunDele dr = new RunDele(RunDele);
                    this.Invoke(dr);
                }
                else
                {
                    listView1.Items.Insert(0, i.ToString());
    
                    i++;
                }
            }
            void Exit()
            {
                listView1.Items.Insert(0, i.ToString());
    
                i++;
            }
        }
    }
  • 相关阅读:
    5月16日 AJAX
    5月13日 Jquery基础
    5月13日 PDO封装
    会话控制练习
    文件上传
    会话控制
    注册审核
    练习
    三级联动
    AJAX之XML
  • 原文地址:https://www.cnblogs.com/275147378abc/p/4615256.html
Copyright © 2011-2022 走看看