今天将多线程的知识有回顾了下,总结了几点:
新建一个线程(无参数,无返回值)
- 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