c#之线程随机

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 WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Control.CheckForIllegalCrossThreadCalls = false;
        }
        bool a;
        public void playGame()
        {
            Random rd = new Random();

            while (a)
            {
                this.label1.Text = rd.Next(0, 10).ToString();
                this.label2.Text = rd.Next(0, 10).ToString();
                this.label3.Text = rd.Next(0, 10).ToString();
            }

        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (!a)
            {
                a=true;
                this.button1.Text = "暂停";
                Thread th = new Thread(playGame);
                th.IsBackground = true;
                th.Start();
            }
            else {

                this.button1.Text = "开始";
                a = false;
            }
        }
    }
}

  

时间: 2024-07-30 09:09:56

c#之线程随机的相关文章

线程技术讨论

一:线程的概念 多线程是个有意思的概念,一个应用程序,比如酷我音乐或者某个游戏,是一个进程,然后cpu给该进程 分配内存空间,如果电脑内存空间有限,而且运行的程序比较多时就会比较卡,一个进程可能有多个线程 执行,比如游戏中,多个任务,建筑物等都是线程在操作,在单核处理器的情况下,是并发执行的,cpu给 每个线程随机分配时间片,得到时间片的那个任务执行,由于切换的频率比较快,所以用户看起来是一起 执行的.在多核处理器的情况下,是并行的,确实可以一起执行,所以多线程的好处就是不必考虑电脑是否多核,

线程通信

线程通信 一 使用Synchronized的线程 1.当线程在系统内运行时,线程的调度具有一定的透明性,程序通常无法准确控制线程的轮换执行,但java也提供了一些机制来保证线程协调运行.Object类提供了wait(),notify()和notifyAll()三个方法,这三个方法属于Object类,但是必须由同步监视器来调用,可以分为以下两种情况:(1)对于使用synchronized修饰的同步方法,因为该类的默认实例this就是同步监视器,所以可以在同步方法中直接调用这三个方法(2)对于使用s

Linux线程同步

线程同步-互斥锁 1.初始化互斥锁pthread_mutex_init() int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr); 例: pthread_mutex_t mutex; pthread_mutex_init(&mutex, NULL); 2.锁住互斥锁pthread_mutex_lock() int pthread_mutex_lock(pt

转: 【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)

转载请注明出处:http://blog.csdn.net/ns_code/article/details/17095733 挂起和恢复线程     Thread 的API中包含两个被淘汰的方法,它们用于临时挂起和重启某个线程,这些方法已经被淘汰,因为它们是不安全的,不稳定的.如果在不合适的时候挂起线程(比如,锁定共享资源时),此时便可能会发生死锁条件--其他线程在等待该线程释放锁,但该线程却被挂起了,便会发生死锁.另外,在长时间计算期间挂起线程也可能导致问题. 下面的代码演示了通过休眠来延缓运行

C#基本线程同步

0 概述 所谓同步,就是给多个线程规定一个执行的顺序(或称为时序),要求某个线程先执行完一段代码后,另一个线程才能开始执行. 第一种情况:多个线程访问同一个变量: 1. 一个线程写,其它线程读:这种情况不存在同步问题,因为只有一个线程在改变内存中的变量,内存中的变量在任意时刻都有一个确定的值: 2. 一个线程读,其它线程写:这种情况会存在同步问题,主要是多个线程在同时写入一个变量的时候,可能会发生一些难以察觉的错误,导致某些线程实际上并没有真正的写入变量: 3. 几个线程写,其它线程读:情况同2

你知道Thread线程是如何运作的吗?

背景介绍 从Thread的创建流程开始 线程创建的起始点init() 第二个init2() 启动线程,开车啦! 黑实验 几个常见的线程手段(操作) Thread.sleep()那不可告人的秘密 Thread.yield()究竟隐藏了什么? 无处不在的wait()究竟是什么? 扒一扒Looper.Handler.MessageQueue之间的爱恨情仇 从Looper.prepare()开始 创建Handler Looper.loop() 幕后黑手MessageQueue Handler究竟对Mes

【Java并发编程】:线程挂起、恢复与终止

挂起和恢复线程     Thread 的API中包含两个被淘汰的方法,它们用于临时挂起和重启某个线程,这些方法已经被淘汰,因为它们是不安全的,不稳定的.如果在不合适的时候挂起线程(比如,锁定共享资源时),此时便可能会发生死锁条件--其他线程在等待该线程释放锁,但该线程却被挂起了,便会发生死锁.另外,在长时间计算期间挂起线程也可能导致问题. 下面的代码演示了通过休眠来延缓运行,模拟长时间运行的情况,使线程更可能在不适当的时候被挂起: public class DeprecatedSuspendRe

线程的随机性

class Demo extends Thread{ @Override public void run() { for(int i = 0;i<60;i++){ System.out.println(Thread.currentThread().getName()+"---"+i); } } } public class ThreadDemo0 { public static void main(String[] args) { Demo d = new Demo(); d.s

Delphi多线程的OnTerminate属性(附加一个关于临界区线程同步的例子)

首先看TThread源码中关于OnTerminate的代码: public .... property OnTerminate: TNotifyEvent read FOnTerminate write FOnTerminate; ... end; 再看Delphi自带的帮助手册中对于OnTerminate的解释: Occurs after the thread's Execute method has returned and before the thread is destroyed. p