Как показано в коде ниже, я создаю поток в цикле foreach и запускаю его позднее, однако, когда я запускаю поток, я получаю сообщение об ошибке «ссылка на объект не установлена для экземпляра объекта». Я подозреваю, что это проблема закрытия, но, похоже, я делаю все, что должен, чтобы избежать этого, создав локальную копию значения. Как можно исправить этот код, чтобы затем создать потоки, а затем в более позднее время, разрешив вызов методов (запуск потоков)?
foreach (ObjWithDelegateToCreateTrdFrom item in queryResult)
{
// Capture object state
ObjWithDelegateToCreateTrdFrom capturedValue = item;
// Create thread from object
Thread thread = new Thread(() =>
{
capturedValue.Method.Invoke(capturedValue.paramsArray)
});
// Add thread to temp thread list
trdList.Add(thread);
}