Здравствуйте, я пишу небольшую программу, суть которой сводится к созданию списка неких команд, пакетной обработке этого списка. Т.е. просто последовательно выполнять команды. Для этого я использую список объектов
List<GeneralCommand> Commands;
. Этот список определяется в конструкторе окна. Я захотел вынести обработку команд в отдельный поток, а в нем их выполнять и менять значение прогрессбара, и т.д. Для этого мне надо передать этот список в поток, для чего я использую ParameterizedThreadStart, но все равно при попытке приведения типа на элемент этого списка я получаю ошибку
InvalidOperationExeption was unhandled и пояснением "вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток"
Как сделать так что бы я мог работать с этим объектом в потоке? Я хочу обрабатывать элементы списка и после этого удалять их из списка и из ListBox в котором они представляются на форме.
Я только недавно начал изучать язык C# поэтому меня пугают всякие LINQ и иные выражения, и я прошу объяснять как можно проще и с применением наиболее классического синтаксиса.