博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#多线程开发,简单示例-字符串并发处理
阅读量:6514 次
发布时间:2019-06-24

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

  hot3.png

源码如下:

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 PracticeThreadAppendString{    public partial class threadAppendStrForm : Form    {        StringBuilder sb = new StringBuilder();        Thread threadA, threadB;        public bool isStart = false;        private void appendString(string s)        {            lock (sb)            {                sb.Append(s);            }        }        private void methodA()        {            while (true)            {                if( !this.isStart){                    break;                }                Thread.Sleep(100);                appendString("A");            }        }        private void methodB()        {            while (true)            {                if( !this.isStart){                    break;                }                Thread.Sleep(100);                appendString("B");            }        }        public threadAppendStrForm()        {            InitializeComponent();        }        private void startThreadButton_Click(object sender, EventArgs e)        {            if (this.isStart)            {                return;            }            this.isStart = true;            //清空缓冲区            sb.Remove(0, sb.Length);            appendStrTimer.Enabled = true;            threadA = new Thread(new ThreadStart(methodA));            threadB = new Thread(new ThreadStart(methodB));            threadA.Start();            threadB.Start();        }        private void exitThreadButton_Click(object sender, EventArgs e)        {            this.isStart = false;                    }        private void appendStrTimer_Tick(object sender, EventArgs e)        {            if(threadA.IsAlive == true || threadB.IsAlive == true){                showRichTextBox.Text = sb.ToString();            }else{                appendStrTimer.Enabled = false;            }        }    }}

效果如下:

 

转载于:https://my.oschina.net/sokes/blog/675342

你可能感兴趣的文章
使用eclipse与android studio 在开发自定义控件时的区别
查看>>
我的友情链接
查看>>
mysql学习笔记
查看>>
django 问题解决
查看>>
年年有鱼游戏Android源码项目
查看>>
java使用Iterator、for循环同步数据
查看>>
创建镜像iso文件
查看>>
Linux下创建软RAID5和RAID10实战
查看>>
C++类的存储
查看>>
ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
查看>>
解决使用Handler时Can't create handler inside thread that has not called Looper.prepare()
查看>>
跟我一起学docker(四)--容器的基本操作
查看>>
磁化强度
查看>>
C/C++ 数据范围
查看>>
LVS+keepalived+nginx
查看>>
monkey如何通过uiautomatorviewer的bounds坐标点击控件
查看>>
第22章,mysql数据库-1
查看>>
【亲测】教你如何搭建 MongoDB 复制集 + 选举原理
查看>>
虚拟化网络技术
查看>>
阿里云中间件推出全新开发者服务
查看>>