C# backgroundworker, использующий Кортеж в качестве аргумента объекта, не найден?
Я пытаюсь отправить аргумент фоновому работнику, я хочу, чтобы этот аргумент был объектом кортежа.
по какой-то причине я получаю исключение nullreferenceException, когда хочу извлечь список из аргумента и не могу понять, почему.
System.NullReferenceException: "The object reference is not set on an instance of an object."
Что я уже пробовал:
//global var public static List<informatie> LsLotto = new List<informatie>(); BackgroundWorker Worker; form_load(){ //background worker Worker = new BackgroundWorker(); Worker.DoWork += new DoWorkEventHandler(worker_function); // here I fill op the list }
function1(){ Tuple<List<informatie>, int> tuple = new Tuple<List<informatie>, int>(LsLotto, 2); Worker.RunWorkerAsync(tuple); }
worker_function(object sender, DoWorkEventArgs e){ //extracting the list Tuple < List < informatie >, int> tuple = e.Argument as Tuple<List<informatie>, int>; List<informatie> gegevens = (List<informatie>)tuple.Item1 ; // <-- line of error (erorr seen above) }
Ziee-M
Я думаю, что у вас есть проблема в другом месте, я использовал ваш код, и он работал, единственное отличие, я использовал список<string> Вместо ur object informatie
Ziee-M
вы приводили в пример своего фонового работника?
BackgroundWorker Worker = новый BackgroundWorker();
Member 13788771
Подождите, я действительно создал экземпляр worker таким образом, и когда форма загружается, я добавил к ней событие. я обновил свой код. Кроме того, я не могу получить целое число " 2 " .. это дает ту же ошибку.
Ziee-M
Где вы заполняете свой объект "LsLotto"? Кроме того, в вашем комментарии под приведенным ниже решением кортеж равен нулю или его список равен нулю?
Ziee-M
Где вы заполняете свой объект "LsLotto"? Кроме того, в вашем комментарии под приведенным ниже решением кортеж равен нулю или его список равен нулю?
Member 13788771
WOOOW нашел его, в function1 у меня был if else, где оба условия запускают код, показанный в function1 выше, но в операторе else я забыл вставить аргумент... извините, что потрудился потратить ваше время!