Обнаружена ошибка при получении списка EventHub PartitionIds. Microsoft.Azure.Amqp

Тот же вопрос: How-to-update-the-gui-from-another-thread-in-c

Two Ways:

  1. Возвращаемое значение в e.result и использовать его для установки значения вашего текстового поля в backgroundWorker_RunWorkerCompleted event
  2. Объявить некоторую переменную для хранения этих значений в отдельном классе (который будет работать как держатель данных). Создайте статический экземпляр этого класса и вы можете получить к нему доступ по любому потоку.

Пример:

public  class data_holder_for_controls
{
    //it will hold value for your label
    public  string status = string.Empty;
}

class Demo
{
    public static  data_holder_for_controls d1 = new data_holder_for_controls();
    static void Main(string[] args)
    {
        ThreadStart ts = new ThreadStart(perform_logic);
        Thread t1 = new Thread(ts);
        t1.Start();
        t1.Join();
        //your_label.Text=d1.status; --- can access it from any thread 
    }

    public static void perform_logic()
    {
        //put some code here in this function
        for (int i = 0; i < 10; i++)
        {
            //statements here
        }
        //set result in status variable
        d1.status = "Task done";
    }
}

1
задан kudlatiger 17 January 2019 в 04:10
поделиться