|
|
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Barmaley57, чтобы программа не считалась "мёртвой", если лицензии долго не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 16:43:08 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Тогда, учитывая это: RyuuИ это не та программа, где "подвисание" кому-то критично. Им нужно нажать на кнопку и ждать, когда программа выполнится.совсем не понятно, зачем так делать. Как уже выше написали могут быть проблемы с отменой подвисшего ожидания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 16:50:05 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Barmaley57, какого рода проблемы? Как раз без этой функции и могут быть проблемы в стиле "программа не отвечает", хотя на самом деле работает, или же я чего-то путаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 16:52:30 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
RyuuКак раз без этой функции и могут быть проблемы в стиле "программа не отвечает", хотя на самом деле работает, или же я чего-то путаю? Похоже, ты этот кусок вообще не тестировал. А зря. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 16:59:55 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Ryuu, зайдем с другой стороны: а возможность отмены длительного ожидания лицензии планировалась в приложении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:14:55 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Ryuu, Есть 2 вида людей. Одни уже бэкапятся, а другие еще нет. (с) Зачем вы интересуетесь мнением коммьюнити, если не хототе к нему прислушаться? Вам прямым текстом сказали, что так делать не надо и намекнули почему. Вопрос немного более глубок, чем кажется на первый взгляд. Но если вам хочется пройти долгим путем - да пожалуйста.... Может быть кто-то следующий прочтет этот топик, задумается и это принесет ему пользу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 18:01:34 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Leo Pevzner, Удивляюсь упорству людей делать костыли ) При том, что нормальное решение делается в несколько строк или несколько кликов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 18:09:17 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
makhaon, сделай решение для автора в несколько кликов/строк, раз это так просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 18:10:52 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
JaDimakhaon, сделай решение для автора в несколько кликов/строк, раз это так просто. Делать не буду, но на вскидку: маленькая формочка "ожидание лицензии" с кратким описанием, одной кнопкой "отмена" и таймером на 200-500 мсек, в котором проверяется значение переменной, и по результату выставляется mrOk. "Отмена" соотв-но выставляет mrCancel. Причём если автор уверен, что получение лицензии в 9 случаях из 10 очень быстрое, то можно сделать что-то вроде (псевдокод): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Таким образом будет "залипание" приложения на одну секунду и если за эту секунду лицензия не "прокнет", то будет отображено окно ожидания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 18:31:33 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Правда там предполагается, что значение License меняется где-то в другом потоке. Если в этом же, то лучше сразу форму с таймером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 18:34:40 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
А что если он уже показал формочку, которая не закрывается, но в которой ожидание лицензии по предложенному автором методу, как в этом случае ему может навредить ProcessMessage? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 18:35:41 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
да вы задолбаликак в этом случае ему может навредить ProcessMessage? Будет зря греть процессор. В сочетании с Sleep() вызовет состояние "Not responding" со всеми вытекающими вплоть до автоматического убиения приложения. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 18:48:51 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
alekcvp, И к этих 20 строкам кода надо еще прибавить код самой многопоточной формы ожидания. Все это проверить и протестировать (не говоря уже про само написание кода). И всё это вместо одного простого вызова ProcessMessages из цикла. Возникает вопрос: если результат один и тот же, зачем платить больше (причем на пару порядков)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 18:56:28 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
JaDialekcvp, И к этих 20 строкам кода надо еще прибавить код самой многопоточной формы ожидания. Какой многопоточной? Какая отладка? Таймер на форме и две строчки в TimerOnTimer(): Код: pascal 1. 2. 3. 4. Но вообще, можно писать правильно, а можно - быстро. Каждый выбирает для себя :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 19:13:13 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
RyuuВажно и то, чтобы при A<1 программа просто ждала, пока A не будет больше 0;А кто эту переменную будет менять? Или функция GetXMLFreeLicenseCount может со временем возвратить другое значение? От чего это зависит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 22:46:55 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
JaDiсделай решение для автора в несколько кликов/строк, раз это так просто. Всё уже сделано до нас, рекомендую посмотреть: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_the_Parallel_Programming_Library http://proghouse.ru/programming/36-delphi-xe7-ppl http://www.sql.ru/forum/1050286/ Или таймер на форму, на худой конец. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 23:54:19 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
makhaonнормальное решение делается в несколько строк или несколько кликов. makhaonВсё уже сделано до нас, рекомендую посмотреть: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_the_Parallel_Programming_Library http://proghouse.ru/programming/36-delphi-xe7-ppl http://www.sql.ru/forum/1050286/ Или таймер на форму, на худой конец. 1 и 2. Ссылка на библиотеку (стороннюю/встроенную), которой даже нет в делфи 6 из первого поста; 3. Ссылка на сторонний класс под сотню строк кода в интернете ( привет gunsmoker'у и не в укор wadman'у); 4. Делфийский таймер (таймер, Карл!), который к многопоточному программированию относится не больше, чем ProcessMessages. Т.е. решения в несколько строк/кликов, как выше декларировалось, просто не существует, и все-равно придется разбираться с кучей кода/библиотек (сторонних, причем) только ради того, что программа не зависала в "бесконечном" цикле. Хотя для этих целей имеется встроенное и простое в использование средство в виде ProcessMessages, которое было создано разработчиками делфи в т.ч. и для целей автора данного топика, цитирую : "In lengthy operations, calling ProcessMessages periodically allows the application to respond to paint and other messages." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 00:29:31 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
JaDiХотя для этих целей имеется встроенное и простое в использование средство в виде ProcessMessages, которое было создано разработчиками делфи в т.ч. и для целей автора данного топика, цитирую : "In lengthy operations, calling ProcessMessages periodically allows the application to respond to paint and other messages."Это не отменяет того что эта функция есть суть - кривой костыль, причем с возможными неприятными побочными эффектами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 01:40:27 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
И да, те кто до сих пор пользует Delphi 6 - махровые мазохисты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 01:44:51 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Ryuu, в несколько кликов/строк - это просто: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 02:36:42 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Leo PevznerRyuuLeo Pevzner, пропущено... Я чего-то не понимаю? Да. Предположим, что во времы выполнения этого цикла, пользователь нажмет на крестик и приложение получит сообщение WM_CLOSE. Давайте подумаем, что после этого должно произойти?сработает OnClose, но форму закрыть не дадут, пока не завершится процедура, в которой исполняется цикл. а если во время выполнения потока пользователь нажмёт на крестик? так проблема-то в чём? в том, что очередь Messages заполнится, которые выполнить не дадут, пока не завершится цикл? так они же и обрабатываются ни разу не встречал с этим проблем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 03:35:22 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
просто яа если во время выполнения потока пользователь нажмёт на крестик? Нет проблем, если проверять на закрытие приложения. Как это делается с wcthread: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 08:52:14 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
JaDi, Ок, JaDi, тебе можно так писать :) ТСу тоже. Я же уже написал. Тому, кто хочет пройтись еще раз по граблям, по которым люди уже прошлись сто раз - флаг в руки. Зачем ТСу Delphi 6 тоже покрыто мраком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 10:53:46 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
makhaon, Проблема в том, что в данном случае дешевые гвозди предлагают забивать дорогим микроскопом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 10:58:23 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
JaDiПроблема в том, что в данном случае дешевые гвозди предлагают забивать дорогим микроскопом. Тут вообще программист не нужен. Если купили ПО, то могут им пользоваться, не купили - не могут. Логично? А то страх перед потоками порождает кучу проблем с крутыми эпитетами вроде "дорого микроскопа" и позволяет оправдывать кривые решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 11:25:26 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39479919&tid=2042080]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
248ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 558ms |

| 0 / 0 |
