以下这个例子是用一个后台线程执行计算逻辑,这样不影响前台界面操作,也就是说

可以在前台UI界面执行其他操作。

重点是新线程中,调用了一个委托方法,这个方法是需要填充数据到前台控件,因为

前台控件是在原来的线程中创建的,所以在新线程中需要调用Invoke方法,实时的展示

后台逻辑的计算进度。

代码如下:

  1  public partial class Form1 : Form
2 {
3 private delegate void mydelegate(long j);
4 private mydelegate dele;
5 public Form1()
6 {
7 InitializeComponent();
8 dele += new mydelegate(delegateMethod);
9 }
10
11 private void delegateMethod(long j)
12 {
13 this.textBox1.Text = j.ToString();
14 }
15
16 private void button1_Click(object sender, EventArgs e)
17 {
18 Thread thd = new Thread(threadMethod);
19 thd.Start();
20 }
21
22 private void threadMethod()
23 {
24 long j = 0;
25 for (int i = 0; i < 1e10; i++)
26 {
27 j++;
28 if (j%1000 == 0)
29 {
30 //调用Invoke方法后,会在原来的创建textbox1的线程中执行delegateMethod方法。
31 this.Invoke(dele,j);
32 }
33 }
34 }
35 }
36

.NET并行计算和并发3.2-多线程调用Invoke的更多相关文章

  1. .NET并行计算和并发5:多线程编程一般指导性原则

    使用多线程时要考虑以下准则: 不要使用 Thread.Abort 终止其他线程. 对另一个线程调用 Abort 无异于引发该线程的异常,也不知道该线程已处理到哪个位置. 不要使用 Thread.Sus ...

  2. 高性能、高并发TCP服务器(多线程调用libevent)

    from:http://blog.csdn.net/i_am_jojo/article/details/7587838 本文讲述的TCP服务器是模仿memcache中的TCP网络处理框架,其中是基于l ...

  3. java 并发性和多线程 -- 读感 (一 线程的基本概念部分)

    1.目录略览      线程的基本概念:介绍线程的优点,代价,并发编程的模型.如何创建运行java 线程.      线程间通讯的机制:竞态条件与临界区,线程安全和共享资源与不可变性.java内存模型 ...

  4. Java并发性和多线程

    Java并发性和多线程介绍   java并发性和多线程介绍: 单个程序内运行多个线程,多任务并发运行 多线程优点: 高效运行,多组件并行.读->操作->写: 程序设计的简单性,遇到多问题, ...

  5. Java并发性和多线程介绍

    java并发性和多线程介绍: 单个程序内运行多个线程,多任务并发运行 多线程优点: 高效运行,多组件并行.读->操作->写: 程序设计的简单性,遇到多问题,多开线程就好: 快速响应,异步式 ...

  6. 29、Java并发性和多线程-非阻塞算法

    以下内容转自http://ifeve.com/non-blocking-algorithms/: 在并发上下文中,非阻塞算法是一种允许线程在阻塞其他线程的情况下访问共享状态的算法.在绝大多数项目中,在 ...

  7. Java 并发和多线程(一) Java并发性和多线程介绍[转]

    作者:Jakob Jenkov 译者:Simon-SZ  校对:方腾飞 http://tutorials.jenkov.com/java-concurrency/index.html 在过去单CPU时 ...

  8. dump、libeay32.dll、gsoap、webserver多线程调用gsoap产生崩溃

    问题:调用webserver接口出现dump文件,dump文件指向libeay32.dll有问题,产生崩溃的原因是gsoap多线程问题,多线程调用时需要程序启动的地方调用如下函数进行多线程初始化: i ...

  9. C# 多线程调用静态方法或者静态实例中的同一个方法-方法内部的变量是线程安全的

    C#  多线程调用静态方法或者静态实例中的同一个方法-方法内部的变量是线程安全的 using System;using System.Threading;using System.Threading. ...

随机推荐

  1. GoldenGate抽取Informix数据库安装及配置

    GoldenGate抽取Informix数据库安装及配置 本次测试架构 l  在中间机上安装informix csdk4.10版本,并编译配置unixODBC; l  在中间机上安装ogg for I ...

  2. centos下载

    标题:   https://www.cnblogs.com/tony-brook/p/9849624.html DVD ISO:普通光盘完整安装版镜像,可离线安装到计算机硬盘上,包含大量的常用软件,一 ...

  3. LeetCode #003# Longest Substring Without Repeating Characters(js描述)

    索引 思路1:分治策略 思路2:Brute Force - O(n^3) 思路3:动态规划? O(n^2)版,错解之一:420 ms O(n^2)版,错解之二:388 ms O(n)版,思路转变: 1 ...

  4. 【2.0】SpringBoot多环境yml文件配置

    一.使用Spring Boot Profiles 1. 使用yml文件 首先,我们先创建一个名为 application.yml的属性文件,如下: server: port: 8080 my: nam ...

  5. Python入门 模块

    module 模块 atestmodule.py #!/usr/bin/env python3 # -*- coding: utf-8 -*- 'a test module' def addFunc( ...

  6. Nginx 配置负载均衡

    nginx负载均衡配置,主要是proxy_pass,upstream的使用. 注意问题,多台机器间session的共享问题. 不用session,用户cookie.或者用redis替代session. ...

  7. Vue 兼容 IE9 全功能正常使用的全面解决方案

    https://blog.csdn.net/VhWfR2u02Q/article/details/80863626

  8. eclipse 对 hadoop1.2.1 hdfs 文件操作

    package com.hdfs; import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io ...

  9. Docker Image管理学习笔记,ZT

    Docker Image管理学习笔记 http://blog.csdn.net/junjun16818/article/details/38423391

  10. 依赖注入demo

    让我们看一个例子: class UserProvider{ protected $connection; public function __construct(){ $this->connec ...