C#网络编程之单线程与多线程实例对比(3)

来源:互联网 发布:js验证用户名字母开头 编辑:程序博客网 时间:2024/05/16 18:07
//单线程 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 DeletgateThread : Form    {        public DeletgateThread()        {            InitializeComponent();            CheckForIllegalCrossThreadCalls = false;//允许跨线程调用        }        public delegate void writeTxt(char  chr);//定义委托        public writeTxt writetxt;//声明委托        public void write(string str, writeTxt writes)//使用委托        {            for (int i = 0; i < str.Length; i++)            {                writes(str[i]);                DateTime now = DateTime.Now;                while (now.AddSeconds(1) > DateTime.Now) { }            }        }        private void text1(char chr)        {            textBox1.AppendText(chr.ToString());        }        public void text2(char chr)        {            textBox2.AppendText(chr.ToString());        }        private void stratWrite()        {                  if (checkBox1.Checked)            {                textBox1.Clear();                groupBox4.Text = "正在运行。。";                groupBox2.Refresh();                writetxt = new writeTxt(text1);                write(textBox3.Text.Trim(),writetxt);            }            if(checkBox2.Checked)            {                textBox2.Clear();                groupBox5.Text = "正在运行。。";                groupBox3.Refresh();                writetxt = new writeTxt(text2);                write(textBox3.Text.Trim(),writetxt);            }        }        private void button1_Click(object sender, EventArgs e)        {            Thread tr = new Thread(new ThreadStart(stratWrite));//创建线程            tr.Start();//启动线程        }            }}//多线程 并发任务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 DeletgateThread : Form    {        public DeletgateThread()        {            InitializeComponent();            CheckForIllegalCrossThreadCalls = false;//允许跨线程调用        }        public delegate void writeTxt(char  chr);//定义委托        public writeTxt writetxt;//声明委托        public void write(string str, writeTxt writes)//使用委托        {            for (int i = 0; i < str.Length; i++)            {                writes(str[i]);                DateTime now = DateTime.Now;                while (now.AddSeconds(1) > DateTime.Now) { }            }        }        private void text1(char chr)        {            textBox1.AppendText(chr.ToString());        }        public void text2(char chr)        {            textBox2.AppendText(chr.ToString());        }        private void stratWrite()        {            if (checkBox1.Checked)            {                textBox1.Clear();                textBox1.Refresh();                groupBox4.Text = "正在运行。。";                groupBox2.Refresh();                writetxt = new writeTxt(text1);                write(textBox3.Text.Trim(),writetxt);            }        }        private void stratwrite1()        {            if (checkBox2.Checked)            {                textBox2.Clear();                textBox2.Refresh();                groupBox5.Text = "正在运行。。";                groupBox3.Refresh();                writetxt = new writeTxt(text2);                write(textBox3.Text.Trim(), writetxt);            }        }        private void button1_Click(object sender, EventArgs e)        {            Thread tr = new Thread(new ThreadStart(stratWrite));//创建线程            tr.Start();//启动线程            Thread tr1 = new Thread(new ThreadStart(stratwrite1));//创建第二个线程            tr1.Start();//启动线程        }            }}