Почему мой поток не запускается и почему возникает ошибка компиляции «Использование неназначенной локальной переменной thread»? - PullRequest
0 голосов
/ 29 мая 2020

Моя цепочка вообще не запускается. Поэтому я добавил thread.Start () , и теперь у меня возникла ошибка Использование неназначенной локальной переменной 'thread' . Форма отображается, но затем ничего не происходит.

        Thread thread = new Thread(() => {

            {
                PagSeguroWork.Execute(vlTotal, tipoPagamento, nrParcelas);
                thread.Start(); // here's the error
            };


            });

            using (FrmPagamento frm = new FrmPagamento())
            {
                frm.ShowDialog();
            }

Ответы [ 2 ]

2 голосов
/ 29 мая 2020

Потому что вы пытаетесь получить доступ к переменной потока в лямбде, которая инициализирует переменную потока (так что в этом случае это будет означать, что вы пытаетесь запустить поток из самого себя). Попробуйте переместить thread.Start() out:

Thread thread = new Thread(() => PagSeguroWork.Execute(vlTotal, tipoPagamento, nrParcelas));
thread.Start(); 

Также в настоящее время в целом рекомендуется использовать C# Task API, а не создавать Thread вручную.

2 голосов
/ 29 мая 2020

Вы пытаетесь запустить поток из потока . Переместите thread.Start(); в после определения объекта Thread:

Thread thread = new Thread(() => {
    PagSeguroWork.Execute(vlTotal, tipoPagamento, nrParcelas);
});
thread.Start();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...