Hello Mat

 找回密码
 立即注册
查看: 6956|回复: 0

C#多线程使用

  [复制链接]

1294

主题

1520

帖子

110

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22633
发表于 2018-2-13 19:40:58 | 显示全部楼层 |阅读模式
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;

  10. namespace WindowsFormsApplication1
  11. {
  12.     public partial class Form1 : Form
  13.     {
  14.         int j = 0;
  15.         public Form1()
  16.         {
  17.             InitializeComponent();
  18.         }

  19.         private void button1_Click(object sender, EventArgs e)
  20.         {
  21.             BackgroundWorker mWorker = new BackgroundWorker();
  22.             mWorker.WorkerSupportsCancellation = true;
  23.             // SumX要执行main函数
  24.             mWorker.DoWork += new DoWorkEventHandler(SumX);
  25.             // xxx是一个被调函数,可用于最后结果的输出以及显示
  26.             mWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(xxx);
  27.             mWorker.RunWorkerAsync();
  28.         }

  29.         private void SumX(object sender, EventArgs e)
  30.         {
  31.             for (int i = 0; i < 1000; i++)
  32.             {
  33.                 j=j+i;
  34.             }
  35.         }
  36.         private void xxx(object sender, EventArgs e)
  37.         {
  38.             // 全局变量j
  39.             this.textBox1.Text = j.ToString();
  40.         }

  41.     }
  42. }
复制代码
通过mWorker.DoWork += new DoWorkEventHandler(SumX);使得C#窗体界面不会卡顿,即将主进程变为附加进程进行使用。
j是个全局变量;winform界面显示0-999的累加和;
百度网盘代码分享:https://pan.baidu.com/s/1nw16BGH


算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Python|Opencv|MATLAB|Halcom.cn ( 蜀ICP备16027072号 )

GMT+8, 2024-4-20 09:21 , Processed in 0.247790 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表