Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович

Новые технологии / Нити на кубиках

  • Демонстрация использования потоков с делегатами на примере игральных кубиков.
  • Дата отправки отчёта: 9 сентября 2015 г.
  • Задание выполнено: за 30 мин.
  • Чему научился: работе с потоками
  • Что было сложным: Побороться с необработанным исключением при повторном запуске так и не удалось :(
  • Комментарии: Вспомнился старый добрый ассемблер MASM со своим макросом INVOKE. Там при вызове INVOKE указывается имя функции, а потом через запятую перечисляются аргументы. Здесь тоже так попробовала сделать:
    if(InvokeRequired)
                {
                    DelegateShow show = ShowDice;
                    Invoke(show, a, b);
                    return;
                }
    И ... о, чудо!!! ОНО ЗАРАБОРАЛО!!!
    Однако при повторном запуске приложения часто (но не всегда) возникает необработанное исключение, с которым я не знаю, что делать.
    Пробовала запускать код как на уроке - проблема не исчезла.

    Жалко, что не успела отчитаться по делегатам - вчера совсем не было времени. Но я выполнила предыдущий урок, и все получилось.

  • Оценка видео-уроку:
Отчёт от 4004 за Новые технологии / Нити на кубиках


Отчёт от 4004 за Новые технологии / Нити на кубиках




Оцени работу

 
Сохранить страницу:

2146. Иван
Иван
ответить
→  Елена  # Новые технологии / Нити на кубиках / 2015-09-09 21:55

Вот в этом отчете http://www.videosharp.info/5649/checking/soft2=62 видел еще решение. Наверное, тоже имеет право на существование. ( dice1.Stop();


24. Оля
Оля
ответить
→  Елена  # Новые технологии / Нити на кубиках / 2015-09-09 21:09

Елена, я в восторге от твоей целеустремленности, что ты не сдаешься и решаешь задачу! Молодец!


4004. Елена
Елена
ответить
# Новые технологии / Нити на кубиках / 2015-09-09 20:22

Решила проблему вот таким обработчиком:
private void Form1_Leave(object sender, EventArgs e)
        {
            dice1.thread.Abort();
            dice2.thread.Abort();
            dice3.thread.Abort();
        }
Не знаю, насколько это корректно.



Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Узнал, как работать с потоками на примере игральных кубиков.
Трудности: разобраться как работают и взаимодействуют потоки.
-------------------------------------------------------------
Научился: Научился создавать 3 потока в программе с помощью Thread.Start.
Трудности: В какой то момент у меня поток "застрял" в памяти и не давал скомпилировать файлы - потому, что эксзешник был в памяти запущен , но это мелкая неприятность - я его удалил в памяти.
Потоки это классно.
Смотреть видеозапись: https://yadi.sk/i/msm-0284rxHMQ