zoukankan      html  css  js  c++  java
  • wpf 多线程操作例(1)

    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)//子线程返回的是true
                {
                    RunDele dr = new RunDele(RunDele);
                    this.Invoke(dr);//转换成父线程
                }
                else
                {
                    listView1.Items.Add(i.ToString());
    
                    i++;
                }
            }
          
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
        }
    }
  • 相关阅读:
    白话SSL协议的握手过程
    PHP进程高负载
    Apache不定时宕机
    KindEditor
    过滤进程命令
    LAMP 平台必建安装包
    scp command
    ssl_request_log日志拆分
    Day01:Python入门
    Day03:集合、文件处理和函数基础
  • 原文地址:https://www.cnblogs.com/w-wz/p/4615591.html
Copyright © 2011-2022 走看看