今天将多线程的知识有回顾了下,总结了几点:
新建一个线程(无参数,无返回值)
- 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
C# 多线程编程,传参,接受返回值
原文:http://www.cnblogs.com/hawk2014/p/4563049.html