c# 线程操作实例

原创 2016年08月31日 08:51:47
namespace 线程
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 启动线程
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_Load(object sender, EventArgs e)
        {
            //Start()启动线程,告诉CPU可以执行我的任务了,具体何时执行,由CPU决定.
            //Abort()终止线程,终止完成后不能再Start()
            //Thread.Sleep(1),使当前线程停止一段时间运行.
            //Name 线程名
            //Thread.CurrentThread 获得当前的线程引用。

            this.label1.Text = "";
            this.label2.Text = "";
            Control.CheckForIllegalCrossThreadCalls = false;//取消程序交叉检查
        }

        private void button1_Click(object sender, EventArgs e)
        {
            text();
        }

        private void text()
        {
            for (int i = 0; i < 1000000; i++)
            {
                this.label1.Text = i.ToString();
            }
        }

        private void text2(object obj)
        {
            for (int i = 0; i < 1000000; i++)
            {
                this.label2.Text = obj.ToString();
            }
        }
        /// <summary>
        /// 线程调用无参函数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            Thread th = new Thread(text);
            th.IsBackground = true;
            th.Start();
        }

        /// <summary>
        /// 线程执行的函数若要带参,参数类型必须是object
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            Thread th = new Thread(text2);
            th.IsBackground = true;
            th.Start("线程调用了带参数函数");
        }

        private void playgame()
        {
            Random r = new Random();

            while (true)
            {
                this.label1.Text = r.Next(0, 10).ToString();
                this.label2.Text = r.Next(0, 10).ToString();
            }
        }

      

        private void button4_Click(object sender, EventArgs e)
        {
            playgame();
        }

        private void button5_Click(object sender, EventArgs e)
        {
            Thread th = new Thread(playgame);
            th.IsBackground = true;
            th.Start();
        }


        bool b = false;
        private void playgame2()
        {
            Random r = new Random();

            while (b)
            {
                this.label1.Text = r.Next(0, 10).ToString();
                this.label2.Text = r.Next(0, 10).ToString();
            }
        }
        private void button6_Click(object sender, EventArgs e)
        {
            Random r = new Random();

            if (b == false)
            {
                b = true;
                button6.Text = "停止";
                Thread th = new Thread(playgame2);
                th.IsBackground = true;
                th.Start();
            }
            else
            {
                b = false;
                button6.Text = "新奖(2)";
            }
        }
    }
}

C++11多线程(十):atomic原子操作的高效率(实例)

参考链接:http://blog.csdn.net/yockie/article/details/8838686 目录 1.原子操作介绍 2.示例比较:不用锁及原子(结果错误) 3.示例比较:用锁(...
  • ceasadan
  • ceasadan
  • 2016年01月06日 10:28
  • 2387

Linux下多线程编程实例解析

提到线程,不得不让人想起进程,所以还是先写下进程与线程的区别吧! 一、进程与线程的区别 进程是程序执行的一个实例,进程有其自己独立的地址空间。一个线程可以含有多个线程,这也是为了提高系统资...
  • GQ1900
  • GQ1900
  • 2016年04月07日 20:01
  • 1677

高效Redis Client多线程操作的并发吞吐设计

Redis是一个非常高效的基于内存的NOSQL数据库,它提供非常高效的数据读写效能.在实际应用中往往是带宽和CLIENT库读写损耗过高导致无法更好地发挥出Redis更出色的能力.下面结合一些redis...
  • younger_z
  • younger_z
  • 2016年05月22日 18:40
  • 1515

C# VS2013 串口接收事件 通过委托跨线程操作TXTBOX

  • 2017年07月24日 11:47
  • 84KB
  • 下载

c#一个简单的线程实例 委托控制控件

  • 2015年07月12日 10:42
  • 49KB
  • 下载

LZMA C# SDK 子线程压缩与解压缩 Unity3d实例

  • 2015年06月22日 02:36
  • 16.35MB
  • 下载

C# 动态更新前段textbox 带参数线程实例

  • 2017年04月21日 11:31
  • 42KB
  • 下载

C#-WinForm跨线程修改UI界面的实例

  • 2017年11月14日 18:04
  • 47KB
  • 下载

[转]C#子线程更新UI控件的方法实例总结

[我的评论:之前项目做的C#客户端对于多线程修改UI使用的就是这个,找了好些时间才找到,其他很多都是没有再函数中直接使用Action [来源:http://www.jb51.net/article/...
  • goodelephant
  • goodelephant
  • 2016年02月24日 16:19
  • 241

C# Singleton 如何实现多线程多实例,每个线程中有且只有一个实例

以前项目中使用的单例一直是用的最简单的C#写法,是Thread Safe的,多线程下只会有一个实例。代码如下:   public sealed class Singleton     {   ...
  • wyh0318
  • wyh0318
  • 2012年07月09日 12:45
  • 263
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c# 线程操作实例
举报原因:
原因补充:

(最多只允许输入30个字)