I am trying to do add values after a specific node.Each task should add a value from a given list by index. For example: the list contains 2 numbers {1,10} i want to add 6 values after the 10, so it will look like {1,10,11,12,13,14,15,16}. The problem is that it adds the last value N amount of times and the result is {1,10,16,16,16,16,16,16}.
static async Task<LinkedList<int>> ParrallelInsertion(List<int> values, LinkedList<int> list)
    {
        var tasks = new List<Task>();
        for (int i = 0; i < values.Count-1; i++)
        {
            tasks.Add(Task.Run(
                () =>
                {
                    lock (list)
                    {
                        var node = list.Find(10);
                        if (node == null)
                        {
                            list.AddLast(values[i]);
                        }
                        else
                        {
                            list.AddAfter(node, values[i]);
                        }
                    }
                }
                ));
        }
        await Task.WhenAll(tasks);
        return list;
    }
 
    