1. C#开发C/S程序,有时需要几个端,如服务器端,管理端,客户端等等, 端与端之间是不同线程或者进程,这就涉及跨线程调用的问题,

使用委托或者异步线程是必不可少的,这里是一个简单的委托线程,即通过委托调用另外一个线程;

2. 有图有真相:

3. 源码:

View Code

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace ThreadControlExample
{
    public partial class Form1 : Form
    {
        Thread thread1;
        Thread thread2;
        delegate void AppendStringDelegate(string str);
        AppendStringDelegate appendStringDelegate;
        public Form1()
        {
            InitializeComponent();
            appendStringDelegate = new AppendStringDelegate(AppendString);
        }

private void AppendString(string str)
        {
           richTextBox1.Text += str;
        }

private void Method1()
        {
            while (true)
            {
                Thread.Sleep(100);   //线程1休眠100毫秒
                richTextBox1.Invoke(appendStringDelegate, "a");
            }
        }
        private void Method2()
        {
            while (true)
            {
                Thread.Sleep(100);   //线程2休眠100毫秒
                richTextBox1.Invoke(appendStringDelegate, "b");
            }
        }

private void buttonStart_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = "";
            thread1 = new Thread(new ThreadStart(Method1));
            thread2 = new Thread(new ThreadStart(Method2));
            thread1.Start();
            thread2.Start();
        }

private void buttonStop_Click(object sender, EventArgs e)
        {
            thread1.Abort();
            thread1.Join();
            thread2.Abort();
            thread2.Join();
            MessageBox.Show("线程1、2终止成功");
        }

}
}

转载于:https://www.cnblogs.com/dzone/archive/2011/09/28/2194934.html

C#编程应用--线程与委托相关推荐

  1. C#:异步编程和线程的使用(.NET 4.5 ),异步方法改为同步执行

    摘自:http://www.codeproject.com/Articles/996857/Asynchronous-programming-and-Threading-in-Csharp-N(葡萄城 ...

  2. 【转】1.1异步编程:线程概述及使用

    从此图中我们会发现 .NET 与C# 的每个版本发布都是有一个"主题".即:C#1.0托管代码→C#2.0泛型→C#3.0LINQ→C#4.0动态语言→C#5.0异步编程.现在我为 ...

  3. C#多线程编程实例 线程与窗体交互

    C#多线程编程实例 线程与窗体交互 代码: public partial class Form1 : Form{//声明线程数组Thread[] workThreads = new Thread[10 ...

  4. 【Java 并发编程】线程池机制 ( ThreadPoolExecutor 线程池构造参数分析 | 核心线程数 | 最大线程数 | 非核心线程存活时间 | 任务阻塞队列 )

    文章目录 前言 一.ThreadPoolExecutor 构造参数 二.newCachedThreadPool 参数分析 三.newFixedThreadPool 参数分析 四.newSingleTh ...

  5. 【Java 并发编程】线程池机制 ( 线程池示例 | newCachedThreadPool | newFixedThreadPool | newSingleThreadExecutor )

    文章目录 前言 一.线程池示例 二.newCachedThreadPool 线程池示例 三.newFixedThreadPool 线程池示例 三.newSingleThreadExecutor 线程池 ...

  6. 《转载》Python并发编程之线程池/进程池--concurrent.futures模块

    本文转载自 Python并发编程之线程池/进程池--concurrent.futures模块 一.关于concurrent.futures模块 Python标准库为我们提供了threading和mul ...

  7. python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)...

    python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程并行与并发同步与异步阻塞与非阻塞CPU密集型与IO密集型 线程与进程 进程 前言 ...

  8. (转)Java并发编程:线程池的使用

    背景:线程池在面试时候经常遇到,反复出现的问题就是理解不深入,不能做到游刃有余.所以这篇博客是要深入总结线程池的使用. ThreadPoolExecutor的继承关系 线程池的原理 1.线程池状态(4 ...

  9. 并发编程-13线程安全策略之两种类型的同步容器

    文章目录 脑图 概述 同步容器 集合接口下的同步容器实现类 Vector (线程安全性比ArrayList好一些,但并非绝对线程安全) 同步容器 线程不安全的场景 其他注意事项 Hashtable C ...

最新文章

  1. 如何获得Oracle系统性能统计? Oracle大型数据库系统在AIXUNIX上的实战详解 集中讨论 14...
  2. 一不小心又把应用发挂了,复盘一下这十几分钟的黑暗时刻
  3. 最终版本Science级组合图表绘制
  4. 计算机电缆zrdjypvp,ZRDJYPVP电缆什么标准
  5. TFS(Team Foundation Server)敏捷使用教程
  6. 实战01_SSM整合ActiveMQ支持多种类型消息
  7. 让我们拭目以待的jinbiguandan
  8. Hbase单点安装Version1.1.5
  9. 打码(C语言)常见粗心小错误 (前方高能,一定要点)
  10. iOS开发那些事-iOS6苹果地图有用开发
  11. 十个提升你Emacs生产力的高招
  12. 转帖: 如何备份和恢复BIG-IP V9.0
  13. SVN合并分支到主干(简单易懂)
  14. JDBC驱动(类型)
  15. Oracle 客户端工具介绍
  16. 黑马java idea (据说是完整的)网盘
  17. eclipse windowJAVA版64位安装教程
  18. 【郝生活】如何下载微博视频(PC)
  19. 能用CSS实现的就不用麻烦JavaScript(Part2)
  20. import keras时遇到的错误 TypeError: Descriptors cannot not be created directly. If this call came from a _

热门文章

  1. 利用Apache的ab命令做Benchmark性能测试
  2. Python3中__call__方法介绍
  3. 【POCO】POCO学习总结(四)——MinGW编译poco
  4. angular图片传到后台_告诉你,SpringBoot+Angular有多牛逼!
  5. yudian温控表a1温度怎么补偿_冰箱冷藏温度多少合适 冰箱冷藏温度怎么调节 看完这篇你就有答案 冰箱...
  6. Java项目:基于遗传算法学校排课系统(java+Springboot+Maven+mybatis+Vue+Mysql)
  7. python技术晨讲_python系列教程14
  8. 第二章 Servlet核心技术 实训二
  9. 运行时异常 检查时异常
  10. h5大转盘抽奖源码后台_微信H5互动营销应该要如何做?