|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravДля упрощения архитектуры ПО многопоточность там излишняя. Но если по отчётам будет видно, что приложение висело две минуты и сорвало управление, то это будет проблемой. Понимаешь? Не, ты не понимаешь... Я тоже не понимаю человека, который создаёт большие и злобные грабли на будущее только для того, чтобы облегчить себе работу здесь и сейчас. Вы правы, как всегда. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 19:40 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
mayton Даже если у вас там выключен Касперыч и MS-Indexing-Service то есть еще много служб (сетевые) которые обеспечивают сетевую инфра-структуру Windows и обязаны реагировать например на сетевые события. Есть много примеров атак на отказ в обслуживании когда атакующий делает различного рода интеракции с сетевыми службами листенереы которых подняты и просто обязаны обслужить входящий реквест. Что из этого можно придумать - ну.. дофига чего. :) Речь, конечно, не об этом. Всё оборудование отключено от сети. Но не в этом дело. Там разные хакерские атаки через флешку - это всё излишне. Мы тут проще вопросы обсуждаем. А именно: если мы доверили процессу GUI принимать решения, то любой пользователь может вмешаться в этот процесс. А за логи отвечать нам. Поэтому нельзя. Видимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 19:50 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
Так не пиши процессы которые зависят от UI. Помнишь я говорил что время реакции человека - 100мс. И время взаимодействия клавиатуры и мыши еще медленее. Вообще нельзя никакие тайм-критичные вычисления завязывать на UI. И пример с notepad - неудачен. Notepad - это однопточное UI приложение где весь жизненный цикл живет внутри WndProc. Следовательно любая атака GDI событиями вызывает срабатывание хендлера Notepad. Просто он - так спроектирован. Как и calc, paint, e.t.c и прочие бесплатные апликухи. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 19:55 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
mayton Так не пиши процессы которые зависят от UI. Помнишь я говорил что время реакции человека - 100мс. И время взаимодействия клавиатуры и мыши еще медленее. Вообще нельзя никакие тайм-критичные вычисления завязывать на UI. И пример с notepad - неудачен. Notepad - это однопточное UI приложение где весь жизненный цикл живет внутри WndProc. Следовательно любая атака GDI событиями вызывает срабатывание хендлера Notepad. Просто он - так спроектирован. Как и calc, paint, e.t.c и прочие бесплатные апликухи. Так я и не пишу приложения, которые зависят от UI. Но дело в том, что разработка многопоточного приложения, порядково сложнее однопоточного. Это, конечно, нам студенты сейчас расскажут как по этой тематике лабы ваяли и открыли для себя локеры. И как всё было просто, потом перешли на Яву... Вопросов масса: например если рабочий поток шлёт неблокирующее сообщение потоку GUI, а тот висит. Вот что будет? И главное деньги, как пояснить руководству, что это очень сложно? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 20:09 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
petrav Так я и не пишу приложения, которые зависят от UI. Но дело в том, что разработка многопоточного приложения, порядково сложнее однопоточного. Это, конечно, нам студенты сейчас расскажут как по этой тематике лабы ваяли и открыли для себя локеры. И как всё было просто, потом перешли на Яву... Вопросов масса: например если рабочий поток шлёт неблокирующее сообщение потоку GUI, а тот висит. Вот что будет? И главное деньги, как пояснить руководству, что это очень сложно? Да асинхронные приложения писать сложнее. Ты прав. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 20:11 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
petrav Вопросов масса: например если рабочий поток шлёт неблокирующее сообщение потоку GUI, а тот висит Дорого? Да! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 20:13 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
petrav А дело в том, что в потоке GUI могут приниматься какие-то решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 20:29 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
Basil A. Sidorov petrav А дело в том, что в потоке GUI могут приниматься какие-то решения. Так я за это только и ратую. Но есть проблема: многопоточные приложения порядково сложнее однопоточных. Задача дёшево и быстро выпускать программы, которые надёжны и функциональны. И решают проблемы заказчика, а не философствование про что-то там. И главное надёжность. Вот в чём конфликт идеологий. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 20:39 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
Basil A. Sidorov petrav А дело в том, что в потоке GUI могут приниматься какие-то решения. Допустим у нас есть поток GUI. Он выполняет свои задачи отображения данных. Есть рабочий поток, который управляет взаимодействием с устройством, есть поток чтения из Ethernet, причём чтение вообще блокирующее. Причём из потока GUI нужно управлять логикой выполнения в рабочем потоке. Нужно останавливать работу из потока чтения Ethernet, нужно перезапускать логику алгоритма внутри рабочего потока, но из потока GUI. И переключать чтение на другой канал данных. Нужно что бы поток GUI отображал всегда корректные данные. А если поток GUI принимает решение об управлении устройством? Нельзя? Нужно. Всё должно работать как часы. И абсолютно потокобезопасно. Если пользователь нажимает кнопку Закрыть, то все потоки корректно завершают свою работу. И всё красиво без малейших задержек. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 21:10 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
petrav Вот в чём конфликт идеологий. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 21:10 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
petravкоторые надёжны и функциональны. Точнее будет "хоть как-то работают, но уже сейчас". petravА если поток GUI принимает решение об управлении устройством? Нельзя? Нужно. Всё должно работать как часы. Сам по себе? Это фантастика. GUI поток может только передавать "внутрь" воздействия пользователя. А если ползатель зажал кнопку и не отпускает, то и передавать нечего. Не может мышь сразу два воздействия произвести. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 21:16 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
Basil A. Sidorov petrav Вот в чём конфликт идеологий. Без проблем. Есть люди, которые создают качественные приложения. Я всегда об этом говорил. А есть которые просто планку переставляют. И об этом я тоже говорил. В своих топиках я хотел бы разговаривать с профессионалами, а не с теми кто планку переставляет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 21:18 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravА если поток GUI принимает решение об управлении устройством? Нельзя? Нужно. Всё должно работать как часы. Сам по себе? Это фантастика. GUI поток может только передавать "внутрь" воздействия пользователя. А если ползатель зажал кнопку и не отпускает, то и передавать нечего. Не может мышь сразу два воздействия произвести. Не... не в этом дело. Мир несовершенен. Допустим мы спроектировали наше приложение так, что только из рабочего потока непосредственно взаимодействуем с устройством. Не всё так просто. Иногда нужно срочно разработать тестовый функционал, так что бы он работал из потока GUI напрямую с оборудованием - это заманчиво просто, но не убил поток рабочий. Это сложно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 21:24 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Сам по себе? Это фантастика. GUI поток может только передавать "внутрь" воздействия пользователя. А если ползатель зажал кнопку и не отпускает, то и передавать нечего. Не может мышь сразу два воздействия произвести. Т.е. ты рассуждаешь в терминах идеального проектирования и достаточного времени на реализацию. Но так бывает не всегда, это большая удача когда тебе позволили реализовать идеальный дизайн (архитектуру) приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 21:28 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
В общем, смысл в чём? Смысл в поиске идеальной архитектуры, это невозможно, ищем компромисс. - И так что бы логика приложения не зависела от GUI. - И так что бы гарантированно потокобезопасно в нашей концепции. - И что бы просто было в использовании нашего фундамента. Чем мы за это платим? За всё нужно платить. В данном случае платим тем, что фундамент приложения заточен сугубо под наши задачи. Заточен в мелочах, причём в управляемых мелочах. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 21:53 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
petrav И так что бы логика приложения не зависела от GUI. И начальство вас не поймет. И денег не выделит. Если у вас учетка, и отклик гуи приемлемый, то БЛ можно делать прямо в потоке ГУИ. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 21:59 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
БЛ - бизнес логика ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 21:59 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 22:13 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
Сутки прошли. Профилактика закончилась. По теме. Докину несколько ссылок. 1) Возможно автору будет интересно: Тяпничная будущая мультипоточность 2) Доклад некого Куканова. Альтернативный взгляд на программирование мультипоточки. Не знаю будет ли применительно к материальному и аппаратному обеспечению автора... но к сведению. [spoiler] ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 01:09 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
mayton 1) Возможно автору будет интересно: Тяпничная будущая мультипоточность ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 10:57 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
mayton, Ну и еще одно соображение. Если тренд топика только теория, без подходов ЯП, то топик больше подходит в тему Разработка ИС. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 11:03 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton 1) Возможно автору будет интересно: Тяпничная будущая мультипоточность А как компилятор узнаёт в каком потоке код будет исполняться? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 11:18 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
petrav А как компилятор узнаёт в каком потоке код будет исполняться? Я исполнил его/их волю, засунул в поток, выполнил проект и получил деньги. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 11:58 |
|
MS Windows: кнопка Close блокирует GUI
|
|||
---|---|---|---|
#18+
PetroNotC Sharp petrav А как компилятор узнаёт в каком потоке код будет исполняться? Я исполнил его/их волю, засунул в поток, выполнил проект и получил деньги. Узнай. Кстати, можно ссылку на проект? В магазине есть, надеюсь? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2019, 12:12 |
|
|
start [/forum/topic.php?fid=57&msg=39902930&tid=2017494]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 260ms |
total: | 397ms |
0 / 0 |