电瓶旋转升降飞机价格:C#多线程的参数传递-程序开发-红黑联盟

来源:百度文库 编辑:偶看新闻 时间:2024/07/02 02:23:11

用C#创建线程是一件很方便的事,一个Void类型的函数,一句声明就可以创建出自己的线程应用。看下面的例子:

 

简单线程创建
public class ThreadController    {        public ThreadController()        {            System.Threading.Thread thread = new System.Threading.Thread(ThreadMethod);            thread.Start();        }        private void ThreadMethod()        {            //Do something        }    }

不过从上面的例子可以看到一个问题,就是ThreadMethod方法是不能传入参数的。要解决这个问题,需要用到ParameterizedThreadStart。看这个例子:

 

参数线程
public class ThreadController    {        public ThreadController()        {            int value = 10;            System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(ThreadMethod));            thread.Start(value);        }        private void ThreadMethod(object parameter)        {            Console.WriteLine(parameter.ToString());        }    }

 

这样线程的响应函数就可以接收参数了。这里还有一个要注意的问题,就是作为参数传递进来的parameter,虽然在参数描述上没有加Ref,但实际上是传地址的引用。所以如果在ThreadMethod中对parameter进行修改。ThreadController中的value值也会被修改

摘自红色黑客联盟(www.7747.net) 原文:http://www.7747.net/kf/201007/52866.html