1 Thread thread = new Thread(() => SendEmailThread(email,username, pwd)); 2 3 public void SendEmailThread(string email,string username,string pwd) 4 { 5 6 ..... 7 8 }
这里是一个多线程,传递参数到子线程中
请问 new Thread( () => SendEmailThread(email,username, pwd))
这种写法是什么意思?虚方法吗?
一般创建线程就是new Thread(参数)。只是这个参数可以是匿名函数,所以就有了new Thread(()=>{函数体})
简化一下,就是new Thread(()=>函数体),在这个示例中,函数体的内容是SendEmailThread(email,username, pwd)
,所以就有了如题的写法。涉及到的知识点如@大叔 所说,再补充一个闭包。
() => SendEmailThread(email,username, pwd)
因为 Thread有一个构造函数,它是指线程要执行的函数,它里面参数个数为零,所以第一个括号里面什么也没有,而=>后面就是要执行的函数。
拉姆达表达式
楼主可以搜索
lambda 表达式
以及
匿名方法
楼上大叔正解,里面就是一个方法
() => {SendEmailThread(email,username, pwd);}
()=>{}是个匿名函数
SendEmailThread(email,username, pwd)是函数里面执行的语句.
楼主可以看看代理与事件, 类似C++里的函数指针,Everything is an Object!