博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#多线程编程实例 螺纹与窗口交互
阅读量:6073 次
发布时间:2019-06-20

本文共 1808 字,大约阅读时间需要 6 分钟。

C#多线程编程实例 螺纹与窗口交互

代码:

public partial class Form1 : Form    {        //声明线程数组        Thread[] workThreads = new Thread[10];        public Form1()        {            InitializeComponent();        }        //此托付同意异步的调用为Listbox加入Item        delegate void AddItemCallback(string text);        //这样的方法演示怎样在线程安全的模式下调用Windows窗口上的控件。

private void AddItem(string text) { if (this.listBox1.InvokeRequired) { AddItemCallback d = new AddItemCallback(AddItem); this.Invoke(d, new object[] { text }); } else { this.listBox1.Items.Add(text); } } //数据採集方法 public void DataGet() { while (true) { AddItem("ok"); Thread.Sleep(1000); } //假设此方法退出了,那么这个线程也就退出了 } /// <summary> /// 启动线程 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { //循环创建并启动线程运行 for (int i = 0; i < workThreads.Length; i++) { if (workThreads[i] == null) { //假设线程不存在,则创建 workThreads[i] = new Thread(new ThreadStart(DataGet)); workThreads[i].Name = i.ToString(); workThreads[i].Start(); } else { //已经存在,假设没有运行,则启动 if (workThreads[i].ThreadState == ThreadState.Aborted || workThreads[i].ThreadState == ThreadState.Stopped) { workThreads[i] = new Thread(new ThreadStart(DataGet)); workThreads[i].Name = i.ToString(); workThreads[i].Start(); }else{ workThreads[i].Start(); } } } } /// <summary> /// 停止线程 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button2_Click(object sender, EventArgs e) { //循环停止线程运行 for (int i = 0; i < workThreads.Length; i++) { //假设线程存在,而且状态不是停止也不是终止的,则终止该线程 if (workThreads[i] != null && workThreads[i].ThreadState != ThreadState.Stopped && workThreads[i].ThreadState != ThreadState.Aborted) { workThreads[i].Abort(); } } } }

源代码下载:http://download.csdn.net/detail/testcs_dn/7618881

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
利用a标签自动解析URL
查看>>
堆,栈,字符串池,以及进程,线程浅谈内存(个人理解)
查看>>
sql语句(Mysql数据库)
查看>>
面向对象小练习
查看>>
Javaweb学习笔记——(二)——————CSS概述,进入JavaScript
查看>>
关于JDBC技术中,调用MySQL中不建议在没有服务器身份验证的情况下建立SSL连接错误解决...
查看>>
寻仙——向中国味表白
查看>>
error this is not a media message!!!
查看>>
JavaWeb网上图书商城完整项目--day02-15.登录功能流程分析
查看>>
mysql性能优化总结(MySql避免重复插入记录的几种方法)
查看>>
vi命令使用技巧及经常出现的错误、etc目录下重要文件、环境变量及别名功能...
查看>>
面试官问你“有什么问题问我吗?”,你该如何回答?
查看>>
这么好的平台,居然荒废了这么久没使用,以后要常来!
查看>>
Rails
查看>>
Lightning学習資料
查看>>
字节流与字符流的区别详解
查看>>
js数组去重的4个方法
查看>>
Floyd判圈算法
查看>>
hdu 4965 矩阵快速幂 矩阵相乘性质
查看>>
iOS - App 应用
查看>>