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

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

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

  • Демонстрация использования потоков с делегатами на примере игральных кубиков.
  • Дата отправки отчёта: 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#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Запускать и останавливать потоки.
Урок, конечно получился не такой замечательный, как Делегаты на кубиках. Учитель несколько раз говорил, что перезапишет его, но похоже, руки так и не дошли. Хорошо бы перезаписать с учетом накопившегося опыта. И выложить отдельным уроком или включить в другой курс, не убирая этого урока: наверняка ведь реализовано будет по-другому. Отдельное спасибо Елене за очень полезное дополнение.
Научился: использовать потоки с делегатами
урок полезный, хотя и немного сумбурный