当前位置: 代码迷 >> Web前端 >> 今天将多线程的知识有回顾了上,总结了几点
  详细解决方案

今天将多线程的知识有回顾了上,总结了几点

热度:221   发布时间:2012-10-08 19:54:56.0
今天将多线程的知识有回顾了下,总结了几点:
今天将多线程的知识有回顾了下,总结了几点:

新建一个线程(无参数,无返回值)

  1. Thread?th?=?new?Thread(new?ThreadStart(PrintName));?
  2. ?
  3. ?public??void?PrintName()????//?函数?
  4. ?{?
  5. ?????//函数体?
  6. ?}?

这里一定注意ThreadStart中的函数是没有返回值和参数的

那么有参数时,就该如下:

  1. Thread?th?=?new?Thread(new?ParameterizedThreadStart(PrintName));?
  2. public??void?PrintName(string name)????//?函数
  3. {
  4. ?//函数体?
  5. }
    ?

?如果遇到又需要返回值,又需要参数的时候,就可以考虑用异步:

但是需要先申明个委托

  1. public?delegate?string?MethodCaller(string?name);//定义个代理?
  2. MethodCaller?mc?=?new?MethodCaller(GetName);?
  3. string?name?=?"my?name";//输入参数?
  4. IAsyncResult?result?=?mc.BeginInvoke(name,null,?null);?
  5. string?myname?=?mc.EndInvoke(result);//用于接收返回值?
  6. ?
  7. public?string GetName(string name)????//?函数
  8. {
  9. return name;
  10. }

?这里注意了,通过这种方式生成新线程是运行在后台的(background),优先级为normal

  相关解决方案