线程安全IQueryable扩展方法

时间:2013-07-08 11:14:50

标签: c# multithreading methods iqueryable

我想创建一个接收IQueryable和的通用扩展方法 将以一种线程安全的方式在单独的线程/任务上执行操作(如获取前十个元素)。

有人可以给我一个正确的方法代码示例

由于

1 个答案:

答案 0 :(得分:0)

像这样的东西

    public static List<T> GetTopN<T>(IQueryable<T> inData, int n)
    {
        List<T> outData = new List<T>(n);

        lock (inData)
        {
            int i = 0;
            foreach (T t in inData)
            {
                if (i >= n)
                {
                    return outData;
                }

                i++;

                outData.Add(t);
            }
        }

        return outData;
    }