日期:2014-05-17  浏览次数:20869 次

线程池方法调用问题

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

class Program
{
    static void Main(string[] args)
    {
        List<Action> actions = new List<Action>();
        actions.Add(() => Console.WriteLine("A1"));
        actions.Add(() => Console.WriteLine("A2"));
        actions.Add(() => Console.WriteLine("A3"));
        actions.Add(() => Console.WriteLine("A4"));

        foreach (var action in actions)
        {
            ThreadPool.QueueUserWorkItem(state => action(), null);
            Thread.Sleep(1);
        }

        Console.Read();
    }
}




 ThreadPool.QueueUserWorkItem(state => action(), null);
state => action()

state => action()是什么意思? state这个变量是哪里来的?

------解决方案--------------------
lambuda表达式、、随便定义的一个参数名而已
------解决方案--------------------
action()  执行委托中的方法。。
------解决方案--------------------
这个你就要去看一下匿名函数了。。

引用:
我懂了,但是 state => action()中的state为什么这个变量可以随便定义? 我修改了state,改为asdfasdf任何一个名称都可以通过编译运行,既然如此,那个这个变量到底有什么意义呢?