关于多线程输入参数和返回值的几种情况
2015-07-11 18:28
621 查看
新建一个线程(无参数,无返回值)
Thread th = new Thread(new ThreadStart(PrintName));
public void PrintName() // 函数
{
//函数体
}
这里一定注意ThreadStart中的函数是没有返回值和参数的
那么有参数时,就该如下:
Thread th = new Thread(new ParameterizedThreadStart(PrintName));
public void PrintName(string name) // 函数
{
//函数体
}
如果遇到又需要返回值,又需要参数的时候,就可以考虑用异步:
但是需要先申明个委托
public delegate string MethodCaller(string name);//定义个代理
MethodCaller mc = new MethodCaller(GetName);
string name = "my name";//输入参数
IAsyncResult result = mc.BeginInvoke(name,null, null);
string myname = mc.EndInvoke(result);//用于接收返回值
public string GetName(string name) // 函数
{
return name;
}
这里注意了,通过这种方式生成新线程是运行在后台的(background),优先级为normal
Thread th = new Thread(new ThreadStart(PrintName));
public void PrintName() // 函数
{
//函数体
}
这里一定注意ThreadStart中的函数是没有返回值和参数的
那么有参数时,就该如下:
Thread th = new Thread(new ParameterizedThreadStart(PrintName));
public void PrintName(string name) // 函数
{
//函数体
}
如果遇到又需要返回值,又需要参数的时候,就可以考虑用异步:
但是需要先申明个委托
public delegate string MethodCaller(string name);//定义个代理
MethodCaller mc = new MethodCaller(GetName);
string name = "my name";//输入参数
IAsyncResult result = mc.BeginInvoke(name,null, null);
string myname = mc.EndInvoke(result);//用于接收返回值
public string GetName(string name) // 函数
{
return name;
}
这里注意了,通过这种方式生成新线程是运行在后台的(background),优先级为normal
相关文章推荐
- java-模拟tomcat服务器
- c#调用COM组件
- C#实现把指定数据写入串口
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#通用邮件发送类分享
- C#中this的用法集锦
- C#.NET获取拨号连接的宽带连接方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#生成饼形图及添加文字说明实例代码
- C#判等对象是否相等的方法汇总
- C#简单的向量用法实例教程
- C#托管堆对象实例包含内容分析
- C#实现按照指定长度在数字前补0方法小结
- C#虚方法的声明和使用实例教程
- C#获取文件夹及文件的大小与占用空间的方法
- C#定义简单的反射工厂实例分析