C#线程使用基础

原创 2013年12月05日 11:11:33

这两天在项目上需要使用多线程技术,研究了半天,碰到了一些问题,现在简要总结下。

线程的使用其实很简单,和JAVA里面差不多,但是还是有很多特别的地方,在C#中的线程,如果要对非线程创建的控件进行操作的话,就会有异常,所以需要使用委托来对其他控件进行操作。

线程使用的步骤:

1、编写产生线程所要执行的方法。

2、引用System.Threading命名空间。

3、实例化Thread类,并传入一个指向线程所要运行的方法的委托。

4、调用Thread实例的Start方法。

程序举例如下:

//主线程

{

...

Thread thread = new Thread(new ThreadStart(Safety)) ;

...

}

//如果要对控件进行操作,需要使用委托

//委托定义

delegate void DGSafety(args1,args2,...) ; //委托声明

DGSafety dgSafety = null ; //委托对象声明

//操作函数

void Do(args1,args2,...)  //操作控件的函数

{

...

}

//委托对象的实例化一般情况下是在窗体Load的时候就实例化

Form_Load(...)

{

dgSafety = new DGSafety(Do) ;

}

//线程中的函数

Safety(...)

{

......

//需要操作控件的时候

this.Invoke(dgSafety,args1,args2,...) ;

......

}

以上就是大致的线程使用过程,这里的重点就在委托上。

C#中的线程 -- 同步基础(线程状态,同步上下文)

内容预告: 线程入门(线程概念,创建线程)同步基础(同步本质,线程安全,线程中断,线程状态,同步上下文)使用线程(后台任务,线程池,读写锁,异步代理,定时器,本地存储)高级话题(非阻塞线程,扶起...
  • cuit
  • cuit
  • 2012年12月26日 12:07
  • 2074

C# 线程:定时器的使用

转载请注明出处:http://www.cnblogs.com/KeenLeung/p/3911556.html Timer类:设置一个定时器,定时执行用户指定的函数。 定时器启动后,系...
  • qq_23126581
  • qq_23126581
  • 2017年06月05日 10:33
  • 810

C#中线程的使用(一):通过委托开启一个线程

整理一下关于C# 中线程的使用方法,这里讲的是使用委托开启线程,含有返回值的方法,用Func开启线程; 还是直接看代码吧! using System; using System.Collection...
  • CJB_King
  • CJB_King
  • 2016年08月01日 11:36
  • 2935

C# 线程向UI通信 委托(delegate)

委托是一种引用方法的类型。 一旦为委托分配了方法,委托将与该方法具有完全相同的行为。 委托是一种安全地封装方法的类型,它与 C 和 C++ 中的函数指针类似。 委托是一种数据结构,它引用...
  • duskvalley
  • duskvalley
  • 2015年12月21日 21:18
  • 1242

线程基础:线程(2)——JAVA中的基本线程操作(上)

从这篇文章开始。我们介绍线程的工作原理。
  • yinwenjie
  • yinwenjie
  • 2016年01月05日 17:35
  • 6529

C#使用委托调用主线程上的控件

摘自其他人博客,自己试过确实解决问题。(如在自己定义的线程里面给textbox赋值) 由于Windows窗体控件本质上不是线程安全的。因此如果有两个或多个线程适度操作某一控件的状态(set valu...
  • wyvbboy
  • wyvbboy
  • 2016年01月26日 15:23
  • 4064

C# 线程调用主线程中的控件

由于项目的需要,最近几天一直在做串口和数据库。由于C#使用的时间不长,所以在编写代码和调试的过程中总是遇到意想不到的问题,比如在使用串口接收数据的时候,在接收数据事件中想把接收的数据放入一个textb...
  • xukai871105
  • xukai871105
  • 2011年02月24日 11:27
  • 7364

C#里面线程的使用方法

操作系统里面经常会用到线程,现在举个窗口弹球的例子讲解一下c#使用线程的方法; 我使用vs2013建了一个windows窗体应用程序,里面的form和类如图所示, Ball是一个类,里...
  • kiss__soul
  • kiss__soul
  • 2018年01月29日 17:50
  • 10

C# 多线程问题处理小结

这两天用到一个需要使用多线程的问题,纠结了一天终于解决了! 问题描述:程序启动后,需要解析文件,由于文件太大,所以解析中会使程序卡顿,故需要额外弹出一个Loading窗体显示“Loading...”...
  • gu263278505
  • gu263278505
  • 2014年11月25日 17:01
  • 692

线程基础:线程(4)——JAVA中的基本线程操作(下)

从这篇文章开始。我们介绍线程的工作原理。
  • yinwenjie
  • yinwenjie
  • 2016年01月14日 12:47
  • 5827
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#线程使用基础
举报原因:
原因补充:

(最多只允许输入30个字)