Уроки C# – Потоки, Thread, Invoke, Action, delegate, Parallel.Invoke – C#

31
2



Ссылка для донатов:

В этом видео Вы узнаете всё о потоках, а также, как решить проблему:
Недопустимая операция в нескольких потоках: попытка доступа к элементу управления не из того потока, в котором он был создан (The calling thread cannot access this object because a different thread owns it).

Основной канал:

#Потоки #Thread #Многопоточность #Invoke #Action #delegate #Parallel.Invoke #СиSharp #СиШарп

Nguồn:https://wijstaanvooronzegrondrechten.org/

31 COMMENTS

  1. Отличное объяснение. По делегатам действительно нет ни одного нормального объяснения, только видел пример на коллекции (посчитать к примеру сумму элементов с доп фильтром допустим только четные и т.п.). Эти доп фильтры делать делегатами, и в основном коде вызывать нужный делегат. Но этот пример не живой, ведь вместо всего этого можно использовать лямбда-выражения или вообще LINQ. Другой пример, который встречал – это применение делагатов в обратных вызовах, но там опять же у нас есть события. Т.е. делегаты в чистом виде в нормальном коде не встретишь.

  2. А про синхронизацию потоков рассказать, мьютексы, семафоры… В чём между ними разница… Обработки исключений, если что-то в фоновом потоке сломалось… Почему об этом не упомянули? Бывает очень нужно знать в ходе главного потока, как там поживает фоновый, или какие-либо данные, или вычисления, из фонового потока, опрашивать, или получать в главном потоке…

  3. В столбец – лучше для понимания. Мы же – изучающие. В строку конечно красивее, но и менее понятно.

  4. вот посмотри, лучший пример для понимания делегата https://www.youtube.com/watch?v=uI3rZYk2sYk&list=PLWCoo5SF-qAMDIAqikhB2hvIytrMiR5TC&index=3

  5. Привет. Еще раз спасибо за уроки. Помоги пожалуйста разобраться. Я только начал программить уже выбрал С# но по работе лобаю на vba. Программирую 8 месяцев и у меня получилось написать парсер на vba Excel. Я хочу понять как парсер написать не привязываясь к vba Excel, а юзать С# как основу, а Excel как тейбл для выгрузки. Можно ли, используя те-же библиотеки что и в vba excel, на С# такое написать? Там есть библиотека mshtml и она берет дом модель из InnernetExplore-ра (SHDocVw.dll) и работает просто как точные команды javascript. Пробовал сделать на vb.net И С#, но неудачно. Парсер (файл) могу предоставить. Заранее Спасибо.

  6. Выходит, делегат – это инструмент, позволяющий волан-де-мортизировать метод, и к нему можно обращаться, не называя его имени, правильно?

  7. Добрый день, Христ. У тебя возникала такая проблема при сохранение картинки, ошибка ("путь имеет недопустимую форму"). Строчка кода Bitmap BM = new Bitmap(pict);

    Ничего не могу найти в интернете по этому поводу, ошибка то возникает, то нет.
    Заранее спасибо.

  8. Прошу прощения за тупой вопрос, но все же : почему при использовании MethodInvorker форма виснет и пока не закончиться цикл который прописан в потоке, т. Е. Я не могу выполнять другие действия на форме кнопку там нажать или проскролить форму

  9. Спасибо! выручил! пиши пожалуйста в столбец -проще понимать…. ну по крайне мере мне)))

  10. Спасибо за урок, единственный урок после которого я понял как использовать Thread

  11. Допустим у нас имеется прибор, подключеный к ПК через COM порт (USB). И необходимо через протокол (не важно какой) отправлять на него данные, а также обрабатывать его ответы. С визуальной составляющей, используя Forms, проблем возникнуть не дожно. Вопрос состоит вот в чем: можно ли при помощи C# и Visual Studio Community создать программу, которая будет контролировать входные и управлять выходными данными (последовательности байтов согласно выбраному протоколу) COM порта, к которому подключен прибор ?

  12. Вы в самом начале показываете загрузчик. Могли бы вы кинуть ссылку на тот комментарий? //хочу попробовать самостоятельно это сделать

  13. ну как в потоках это менять понятно… а вот как изменить из потока который идет в другом классе как это можно сделать?

  14. Спасибо огромное за урок, очень классное объяснение. Насчёт написания кода, как по мне, то в строчку лучше, и понятнее. Ещё вопрос, есть ли урок работе с процессами, и сетевое программирование ?

  15. Делегат это описание метода – типы входных параметров, тип результата, именно описание а не сигнатура. Отличие описания от сигнатуры – последняя включает имя метода и используется вообще для других целей. Экземпляр делегата это ссылка на метод соответствующий описанию. Реализация?)) События, колбэки и так далее. Я понимаю почему вы конструкции типа delegate(int arg) { return arg; } называете делегатами, вот только это не делегаты и даже не их экземпляры, это анонимные функции/методы, которые потом разбираются компилятором в делегат, сам метод и экземпляр делегата. В первом приближении лямбда выражения это синтаксический сахар анонимных функций, но это не так и у них есть отличия, например анонимные функции могут пропускать объявление аргументов, т.е. Action<string> f = delegate { Console.Write("Hello"); }; f("world"); работает, а лямбда выражения нет, в то же время лямбда могут приводиться как к делегату, так и к дереву выражений, а анонимные функции только к делегату.

  16. делегат удобен тогда, когда тебе нужен список делегатов (то-есть у тебя есть методы 1,2,3,4,5,6,7) и ты хочешь их выполнять, у тебя есть список с этими методами типа хочу чтобы, выполнялись так 1,2,3,2,2,2,2,2,1,3,4,5 и ну это можно когда количество небольшое прописать вручную, а так существуют делегаты которые можно добавить в список и выполнять когда тебе нужно и в любой последовательности (станки чпу, сценарии какие-то)

  17. Присоединяюсь ко всем словам благодарности. Спасибо за проделанную работу!

    Хочу дать обратную связь. (13:09) В строчку или в столбик записан код на экране не очень принципиально. Есть только одно пожелание. Увеличьте, пожалуйста, размер шрифта кода. Если смотреть с телефона, то почти ничего не видно. Спасибо!)

    PS. На 150% увеличении комфортно (15:35) 🙂

  18. А правильно ли получается, что при помощи Thread создаёшь новый поток, а при работе с Task работаешь с потоком из пула потоков?

  19. Очень доходчиво объясняешь, скобки правильно расставляешь, так лучше, чем в строку.
    Юмора как раз столько, сколько надо)
    Если возможно – уменьши область захвата видео до размера окна виртуалки, т.к. мелкие символы на 720P не видно нормально (Инет 3G, живу вдали от цивилизации)

  20. Божечки, сколько лет программирую, но лучше тебя никто не разъяснял потоки :))
    Прям зачет!

    Пиши и для быдлокодеров и пиши по ДЗЕНУ, что бы всем норм было :))
    #ЯБЫДЛОКОДЕРлюблюДЗЕН

  21. Спасибо, огромное. Такую сложную тему объяснить настолько доступно. Наконец я чувствую,что смогу пользоваться этими инструментами нормально.

  22. Группа людей выдвигает требования к мэру. Но мэр не может принять всех, т.к. людей слишком много. Тогда группа людей выдвигают одного человека(делегата) и с ним передают требования мэру.

LEAVE A REPLY

Please enter your comment!
Please enter your name here