1.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括多个线程。线程是操作系统分配处理器时间的基本单位
2.应用程序域是指进行错误隔离和安全隔离,在CLR中运行,每个程序域都是单个线程启动,但该程序域中的代码可以创建附加应用程序域和附加线程
3.多线程的优点在于一个线程阻塞的时候,CUP可以运行其他的线程而不需要等待,这样大大的提高了程序的执行效率。而缺点在于线程需要占用内存,线程越多占用的内存就多,多线程需要协调和管理,所以需要占用CPU时间以便跟踪线程,线程之间对共享资源访问会互相影响,所以得解决争用共享资源的问题,线程太多,也会导致控制起来更复杂,最终导致很多程序的缺陷。
4.一个进程可以创建多个线程以执行与该进程关联的部分程序代码,线程使用Tread处理
//线程简单的理解 就执行多个任务 //相当于代码在执行某一个方时 此方法中逻辑还木有执行完,就进行第二次调用 执行相应的逻辑(暂时这样理解)
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 Stockes { public partial class ThreadTest : Form { public ThreadTest() { InitializeComponent(); CheckForIllegalCrossThreadCalls = false;//允许跨线程调用 } private void textBox1_TextChanged(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { Thread thr = new Thread(new ThreadStart(writetxt1));//创建线程 thr.Start();//启动线程 } public void writetxt1() { string str = textBox3.Text.Trim(); if (radioButton1.Checked) { groupBox2.Text = "正在运行中。。"; groupBox1.Refresh(); wrieteTxt(str,textBox1); } if (radioButton2.Checked) { groupBox3.Text = "正在运行中。。。"; groupBox1.Refresh(); wrieteTxt(str,textBox2); } } public void wrieteTxt(String str, TextBox txt) { try { for (int i = 0; i < str.Length; i++) { txt.AppendText(str[i].ToString()); DateTime now = DateTime.Now; while (now.AddSeconds(1) > DateTime.Now) { } } } catch(Exception e) { MessageBox.Show(e.Message); } } } }