Control.Invoke не вызывает - PullRequest
0 голосов
/ 02 мая 2018

Код ниже взят из доказательства разработчика, над которым я сейчас работаю:

using System;
using System.Collections.Concurrent;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

...

QueueProcessor = new Task(() =>
        {
            while (processorrunning)
            {
                if (processorrunning && dq.Count != 0)
                {
                    boxid = string.Empty;

                    if (dq.TryDequeue(out boxid))
                    {
                        if (textBox1.InvokeRequired)
                        {
                            textBox1.Invoke(new MethodInvoker(() =>
                            {
                                if (textBox1.Text == string.Empty)
                                    textBox1.Text = boxid;
                                else
                                    textBox1.Text += Environment.NewLine + boxid;
                                textBox1.Refresh();
                            }));
                        }
                        else
                        {
                            if (textBox1.Text == string.Empty)
                                textBox1.Text = boxid;
                            else
                                textBox1.Text += Environment.NewLine + boxid;
                            textBox1.Refresh();
                        }
                    }
                    else
                    {
                        throw new Exception("Exception removing boxid from queue.");
                    }
                }
                else
                {
                    trigger.WaitOne(600000, false);
                }
            }
        });

Все условия if возвращают true. Существует правильная строка boxid, назначенная для boxid из вызова dq.TryDequeue. Все, кроме кода вызова, работает как надо. Код никогда не принимает остальное в тесте InvokeRequired.

Form1.textBox1 никогда ничего не видит. Идеи приветствуются.

...