C#进程与线程

public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //创建一个线层去执行这个方法
            Thread td = new Thread(paoshu);

            //把线层变成后台线层
            td.IsBackground = true;

            //告诉CPU方法准备好了,可以分配资源执行了
            td.Start();
        }
        public void paoshu()
        {
            for (int i = 0; i < 9999; i++)
            {
                textBox1.Text = i.ToString();
            }
        }
        public void paoshu2()
        {
            for (int i = 0; i < 9999; i++)
            {
                textBox2.Text = i.ToString();
            }
        }

        public void paoshu3()
        {
            for (int i = 0; i < 9999; i++)
            {
                textBox3.Text = i.ToString();
            }
        }

        public void paoshu4()
        {
            for (int i = 0; i < 9999; i++)
            {
                textBox4.Text = i.ToString();
            }
        }

        public void paoshu5()
        {
            for (int i = 0; i < 9999; i++)
            {
                textBox5.Text = i.ToString();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //取消线层跨线层访问的判断
            Control.CheckForIllegalCrossThreadCalls = false;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //创建一个线层去执行这个方法
            Thread td = new Thread(paoshu2);

            //把线层变成后台线层
            td.IsBackground = true;

            //告诉CPU方法准备好了,可以分配资源执行了
            td.Start();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //创建一个线层去执行这个方法
            Thread td = new Thread(paoshu3);

            //把线层变成后台线层
            td.IsBackground = true;

            //告诉CPU方法准备好了,可以分配资源执行了
            td.Start();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            //创建一个线层去执行这个方法
            Thread td = new Thread(paoshu4);

            //把线层变成后台线层
            td.IsBackground = true;

            //告诉CPU方法准备好了,可以分配资源执行了
            td.Start();
        }

        private void button5_Click(object sender, EventArgs e)
        {

            //创建一个线层去执行这个方法
            Thread td = new Thread(paoshu5);

            //把线层变成后台线层
            td.IsBackground = true;

            //告诉CPU方法准备好了,可以分配资源执行了
            td.Start();
        }

        private void button6_Click(object sender, EventArgs e)
        {
            Process[] pc = Process.GetProcesses();
            foreach (var item in pc)
            {
                item.Kill();
            }

        }

C#线层传参数

private void button1_Click(object sender, EventArgs e)
        {
            //声明线层传对方法
            Thread td = new Thread(text);
            //传入参数
            td.Start(123);
        }
        //声明的对像必须为object类型,然后在类里面转换成想要的类型
        public void text(object s)
        {
            int ss = Convert.ToInt32(s);
            for (int i = 0; i < ss; i++)
            {
                textBox1.Text = i.ToString();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //取消跨线层访问控件的判断
            Control.CheckForIllegalCrossThreadCalls = false;
        }
时间: 2024-11-07 01:31:32

C#进程与线程的相关文章

linux查看某个进程的线程id(spid)

鉴于linux下线程的广泛使用 我们怎么查看某个进程拥有的线程id了 现在很多服务的设计 主进程->子进程->线程(比如mysql,varnish) 主进程负责侦听网络上的连接 并把连接发送给子进程 子进程派生线程去处理这些线程 mysql(父进程460,子进程863) 1 460 425 333 ? -1 S 0 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/storage/mysql/backup --pid-file=/

该进程或线程自上一个步骤以来已更改

相关解决办法如下: VS进行高度时,断点处提示"该进程或线程自上一个步骤以来已更改" 每个断点跑两遍似的. 这个是由于在VS环境中 勾上了 "工具\选项--->调试--要求源文件与原始版本完全匹配"这个项 该进程或线程自上一个步骤以来已更改 英文表述:The process or thread has changed since last step 以下是是从网上摘录的解决办法. Q: I have a console application that exe

进程和线程、内核空间等概念

用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限.为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操作系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间.针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为内核空间,而将较

进程和线程有什么区别?

作者:榴莲艺声链接:https://www.zhihu.com/question/21535820/answer/22915780来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 一.关于进程和线程,首先从定义上理解就有所不同 1.进程是什么? 是具有一定独立功能的程序.它是系统进行资源分配和调度的一个独立单位,重点在系统调度和单独的单位,也就是说进程是可以独 立运行的一段程序. 2.线程又是什么? 线程进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的

Python自动化开发,Day10 - 进程、线程、协程

本章内容 操作系统发展史介绍 进程与线程的区别 python GIL全局解释器锁 线程 语法 join 线程锁Lock\Rlock\信号量 将线程变为守护进程 Event时间 Queue队列 生产者消费者模型 进程 语法 进程间通讯 进程池 一.操作系统发展史介绍 手工操作(无操作系统) 1946年第一台计算机诞生--20世纪50年代中期,还未出现操作系统,计算机工作采用手工操作方式. 手工操作 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存

进程、线程和上下文切换

进程是什么? 狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed). 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动.它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元. 进程的概念主要有两点:第一,进程是一个实体.每一个进程都有它自己的地址空间,一般情况下,包括文本区域(textregion).数据区域(data region

多线程编程(进程和线程)

多线程编程(进程和线程) 1.进程:指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程可以启动多个线程. 2.线程:指程序中一个执行流程,一个进程中可以运行多个线程. 一.创建线程(两种方式) 二.线程的5种状态( New,Runnable,Running,Block,Dead ): 三.线程的优先级 四.守护线程 /精灵线程/后台线程 五.方法 六.同步代码锁(synchronized) 一.创建线程(两种方式): 方式1:采用继承Thread的方法 第一,继承 Thre

进程与线程

1.进程与程序的区别? 进程与程序的区别:程序是指的存储在存储设备上(如磁盘)包含了可执行机器指 令(二进制代码)和数据的静态实体:而进程可以认为是已经被OS从磁盘加载到内存上的.动态的.可运行的指令与数据的集合,是在运行的动态实体. 2.进程的概念 程序的运行实例(但这并不代表进程就是在运行,根据OS的调度,进程会处于不同的状态),进程是OS进行资源分配的基本单位. 3.线程的概念 线程是进程的一个执行分支,是OS进行调度的基本单位. 4.进程与线程的区别 除了上述概念上的区别外,进程强调资源

走近并发编程之一 进程和线程

并发与并行,进程与线程不仅是操作系统中及其重要的概念,也是并发编程入门 必须要理解的核心知识. 什么是并发?并发与并行的区别 顺序编程:程序中的所有事物在任意时刻都只能执行一个步骤 并发:在同一时间段内,需要处理多个任务,而在每个时间点又只能处理一个,这就是并发. 假设我们要把多个任务分配给处理机,如果这台机器有多个处理器,显然可以同时执行这些任务,这就是并行. 不同于并行,并发的目的旨在最大限度的提高程序在单处理器上的效率.前者是在物理上的同时发生,而并发是在逻辑上的同时发生.如图,如果要在同

程序,进程,线程(需补充)

1.程序,进程,线程 程序:程序时完成特定任务的一系列指令集合. 进程:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程:线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发