//定义委派函数(参数与要线程中要执行的函数的参数一致)
public delegate void ChangeForm( object o, string str );
//changeConNum函数用于修改标签的文字,用于委派到ChangeForm
private void changeConNum(Object L, String s) //函数返回值需要与ChangeForm的一致(void)
{
if ( ( ( Label )L ).InvokeRequired) //如果这个标签需要InvokeRequired
{
ChangeForm changeForm = new ChangeForm(changeConNum); //将changeConNum这个函数Invoke ->
this.Invoke(changeForm, new object[] { L,s }); //参数列表L,S
}
else //如果不需要则直接修改
{
( ( Label ) L ).Text = s;
}
}
分享到:
相关推荐
在C#多线程编程中,使用线程可以将代码同其他代码隔离,提高应用程序的可靠性,可以使用线程来简化编码,实现并发执行。 二、基本知识 1. 进程与线程:进程作为操作系统执行程序的基本单位,拥有应用程序的资源,...
调试器 default 参数的预设值 默认值 default argument 函数参数的预设值 默认参数 default constructor 预设构造函数 默认构造函数 delegate 委派 代理、委托(如C#中的概念) delegation 委派 委托、代理机制...
Java基础部分,包括了面向对象的基础概念,如构造器、重载与重写、封装、继承和多态,以及String、StringBuilder、StringBuffer的区别,自动装箱与拆箱等。同时,还涉及到线程状态、异常处理、序列化和IO流。 集合...
- **String:** 不可变字符串,适合频繁修改的情况使用`StringBuilder`或`StringBuffer`。 - **StringBuilder vs StringBuffer:** - **StringBuilder:** 非线程安全,效率较高。 - **StringBuffer:** 线程安全,...
- C#则是先通过编译器将C#源代码编译成中间语言(IL)文件,再通过CLR(Common Language Runtime)将IL编译成机器语言执行,因此也属于编译型语言,但需要二次编译。 #### 五、JVM内部结构详解 - **类加载器**:负责...