Использование ISynchronizeInvoke для выполнения методов в потоке, в котором создан объект - C#

Узнай цену своей работы

Формулировка задачи:

Предположим есть класс Client, у которого есть метод Send, который отправляет что-то асинхронно и по окончании отправки инициирует событие Sended. Вот, если подписаться на Sended, и пытаться получить в обработчике инфу об отправке (ну аргументы события), то нужно будет выводить инфу через Invoke (выводить в пользовательский интерфейс например в WPF), так как это будет вызов из другого потока ( не GUI), для решения этой проблемы есть ISynchronizeInvoke. Как пользоваться, вообще что-то не въезжаю. Можете показать на простом примере? Нашёл такую инфу, но что-то мне это мало о чём сказало.

Решение задачи: «Использование ISynchronizeInvoke для выполнения методов в потоке, в котором создан объект»

textual
Листинг программы
class bich
    {
        private int _pole;
        private int pole
        {
            get
            {
                return _pole;
            }
            set
            {
                _pole = value;
                if (value == 10)
                    MyEve(value);
            }
        }
        public delegate void MyDel(int i);
        public event MyDel MyEve;
 
        public void sd()
        {
            Thread www = new Thread(start);
            [url]www.IsBackground[/url] = true;
            [url]www.Start();[/url]
        }
 
        public void start()
        {
            int i =0;
            while (i < 1000000000)
            {
                i++;
            }
            pole = 10;
            //MyEve(i);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы