C#多线程的用法1-简单示例

写在前面:阅读本系列文章即表示你已经知道什么是线程等理论知识,现在正想了解如何正确的使用线程进行编程工作。

/// <summary>
/// 单线程工作示例
/// </summary>
private static void SingleThreadDemo()
{
Console.WriteLine("Main Thread");
Thread thread = new Thread(() =>
{
for (var i = 0; i < 10; i++)
{
Console.WriteLine(String.Format("Thread Out:{0}", i));
Thread.Sleep(500);
}
Console.WriteLine("Sub Thread The End");
});
thread.Start();
Console.WriteLine("Main Thread Wait For Sub Thread");
}
/// <summary>
/// 多个线程工作示例
/// </summary>
private static void MultiThreadDemo()
{
ThreadStart task = () =>
{
for (var i = 0; i < 10; i++)
{
Console.WriteLine(String.Format("Thread {0} Out:{1}", Thread.CurrentThread.Name, i));
Thread.Sleep(500);
}
Console.WriteLine(String.Format("Sub Thread {0} The End", Thread.CurrentThread.Name));
};
Console.WriteLine("Main Thread");
Thread thread1 = new Thread(task)
{
Name = "thread1"
};
thread1.Start();
Thread thread2 = new Thread(task)
{
Name = "thread2"
};
thread2.Start();
Thread thread3 = new Thread(task)
{
Name = "thread3"
};
thread3.Start();
Console.WriteLine("Main Thread Wait For Sub Thread");
}

static void Main(string[] args)
{
//SingleThreadDemo();
//MultiThreadDemo();
Console.ReadLine();
}

  

时间: 2024-10-06 05:41:28

C#多线程的用法1-简单示例的相关文章

Python爬虫进阶五之多线程的用法

前言 我们之前写的爬虫都是单个线程的?这怎么够?一旦一个地方卡到不动了,那不就永远等待下去了?为此我们可以使用多线程或者多进程来处理. 首先声明一点! 多线程和多进程是不一样的!一个是 thread 库,一个是 multiprocessing 库.而多线程 thread 在 Python 里面被称作鸡肋的存在!而没错!本节介绍的是就是这个库 thread. 不建议你用这个,不过还是介绍下了,如果想看可以看看下面,不想浪费时间直接看 multiprocessing 多进程 鸡肋点 名言: "Pyt

Parallel与PLINQ简单示例

Parallel是对Task用法的简化,含有Parallel.For.Parallel.ForEach.Parallel.Invoke三个静态方法.PLINQ是并行版本的LINQ.下面给出Parallel和PLINQ的简单示例及注意事项. 一.简单示例 1.Parallel.For int[] nums = new[] { 1, 2, 3, 4 }; Parallel.For(0, nums.Length, i => { Console.WriteLine("下标:{0},值:{1}&qu

AMQP消息队列之RabbitMQ简单示例

前面一篇文章讲了如何快速搭建一个ActiveMQ的示例程序,ActiveMQ是JMS的实现,那这篇文章就再看下另外一种消息队列AMQP的代表实现RabbitMQ的简单示例吧.在具体讲解之前,先通过一个图来概览下: 1.添加Maven依赖 <!-- rabbitmq begin --> <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit

HMM的维特比算法简单示例

今天读了一位大牛的关于HMM的技术博客,读完之后,写了一个关于维特比算法的简单示例,用scala和java语言混合编写的.现在上传之. package com.txq.hmm import java.utilimport scala.collection._ /** * HMM维特比算法,根据显示状态链条估计隐式链条 * @param states 隐式states * @param observations 显式states * @param start_probability 初始概率向量

spring-servlet.xml简单示例

spring-servlet.xml简单示例 某个项目中的spring-servlet.xml 记下来以后研究用 1 <!-- springMVC简单配置 --> 2 <?xml version="1.0" encoding="UTF-8"?> 3 <beans xmlns="http://www.springframework.org/schema/beans" 4 xmlns:xsi="http://w

Java 多线程编程两个简单的例子

/** * @author gao */ package gao.org; public class RunnableDemo implements Runnable{ @Override public void run() { // TODO Auto-generated method stub for(int i=0;i<10;i++){ System.out.println("新线程输出:"+i); } } public static void main(String []

关于Ajax实现的简单示例

一.代码示例 关于Ajax的基本概念(包括XMLHttpRequest对象及其相关方法属性)移步这里(w3school中文版)学习了解. <!doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>使用Ajax异步加载数据</title> <script type = "text/javasc

【转】bind简单示例

bind简单示例代码 namespace { class placeholder_ {}; placeholder_ __1; } template <typename R, typename T, typename Arg> class simple_bind_t { private: typedef R (T::*F)(Arg); F f_; T* t_; Arg& a_; public: simple_bind_t(F f, T* t, Arg &a) : f_(f),

SQL左连接、右连接和内连接的简单示例

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录: right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: inner join(等值连接) 只返回两个表中联结字段相等的行:举例如下: -------------------------------------------- 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录