Обновление индикатора выполнения из потока в C #

    public class Consumer
    {
        Queue queue;
        Object lockObject;

        public Consumer(Queue queue, Object lockObject)
        {
            this.queue = queue;
            this.lockObject = lockObject;
        }

        public void consume(string filepath)
        {
            int item = 0;


            while (true)
            {
                lock (lockObject)
                {
                    if (queue.Count == 0)
                    {
                        Monitor.PulseAll(lockObject);
                        continue;
                    }

                    item = queue.Dequeue();
                    if (item == 0)
                    {
                        break;
                    }

                   //do some staff
                }

            }

        }
    }




    public class Producer 
    {
        Queue queue;
        Object lockObject;

        public int ProgressPercent = 0;
        int TotalProducedElements = 0;
        public bool check1 = false;

        public Producer(Queue queue, Object lockObject)
        {
            this.queue = queue;
            this.lockObject = lockObject;
        }

        private bool IsPrime(int num)
        {
            if (num == 0)
                return true;
            num = Math.Abs(num);
            for (int i = 2; i c.consume(path));

                    Thread1.Start();



                    Thread2.Start();
                   progressBar1.Maximum = target;

                  while(true)
                       {
                         if(p.ProgressPercent==0)
                            {
                               Thread.sleep(1000);
                            }
                            else
                             {
                               progressBar1.Value=p.ProgressPercent;
                             }

                        }

                 }

У меня два класса работают в одной очереди. один для получения набора целых чисел, а второй - для использования этих целых чисел из очереди.

И во время всего этого я хочу обновить свой индикатор выполнения на этот процент. Так, как обновить индикатор выполнения от потребителя, не блокируя для моего GUI?

Обратите внимание, что я использовалprogressbar.Invoke а такжеdelegate но нет работа.

Ответы на вопрос(3)

Ваш ответ на вопрос