Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.06.07;
Скачать: [xml.tar.bz2];

Вниз

Потоки   Найти похожие ветки 

 
Iriss   (2009-04-20 11:52) [0]

Запускаю расчет кнопкой "Расчет", хочу, чтобы по нажатию кнопки "Прервать" расчет был убит, но не могу пока идет обработка метода нажатия кнопки "расчет" нажать кнопку "Прервать"

Кнопка зажатой остается

------------------------------------
Что я делаю:

Запускаю поток, в котором запускаю метод Run(Self);
который по иерархии вызывает нужный метод Calculate(), в котором производится расчет, который может зависать


 
Palladin ©   (2009-04-20 11:54) [1]


> который по иерархии вызывает нужный метод Calculate(),

по какой еще иерархии?


 
Iriss   (2009-04-20 11:58) [2]

упс, да, иерархии там нет. Ошибся)

Запускаю поток, в котором запускаю метод Run(Self);
который вызывает метод Calculate(), в котором производится расчет, который может зависать


 
clickmaker ©   (2009-04-20 11:58) [3]

> пока идет обработка метода нажатия кнопки "расчет" нажать
> кнопку "Прервать"

как выглядит расчет?


 
Iriss   (2009-04-20 11:59) [4]

расчет представляет собой композицию подрасчетов, каждый из которых может зависать


 
Palladin ©   (2009-04-20 12:01) [5]

телепатор подсказывает, что все расчеты производятся в Synchronize


 
Сергей М. ©   (2009-04-20 12:01) [6]


> Кнопка зажатой остается


Кто ее "зажал", кто посмел ?
Она ж не барышня, чтобы ее "зажимать"))


> Запускаю поток, в котором запускаю метод Run(Self);


Значит не в нем, раз у тебя кого-то там "зажало")


 
clickmaker ©   (2009-04-20 12:02) [7]

> расчет представляет собой композицию подрасчетов, каждый
> из которых может зависать

а почему он может зависать?
для справки: в потоке можно периодически проверять значение переменной Terminated, и если установлено, выходить из потока.
По нажатию же кнопки можно вызывать метод потока Terminate


 
Iriss   (2009-04-20 12:08) [8]

так вот проблема и в том, что как только я нажимаю "Расчет", создается поток, в котором идет расчет,
но во время выполнения этого расчета я просто не могу нажать что-либо на форме (видно, что кнопка "Расчет" находится в нажатом состоянии) - в этом вся и проблема


 
clickmaker ©   (2009-04-20 12:12) [9]

> так вот проблема и в том

проблема в том, что не можешь здесь внятно описать процесс расчета.
Если "просто не могу нажать что-либо на форме", значит этот поток как-либо блокирует очередь сообщений главной формы.


 
Сергей М. ©   (2009-04-20 12:14) [10]


> поток, в котором идет расчет


Значит не в нем, а в основном у тебя идет расчет !
См [5].


 
clickmaker ©   (2009-04-20 12:18) [11]

хм... еще одна жертва Архангельского? -)


 
Ega23 ©   (2009-04-20 12:49) [12]


> еще одна жертва Архангельского? -)


Очень похоже...


 
Anatoly Podgoretsky ©   (2009-04-20 12:53) [13]

> Ega23  (20.04.2009 12:49:12)  [12]

Никто так много не сделал для потокостроительства.


 
Iriss   (2009-04-22 18:30) [14]

всем спасибо, решил


 
Сергей М. ©   (2009-04-22 19:03) [15]

Аминь



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.06.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.005 c
2-1240458342
AlexDan
2009-04-23 07:45
2009.06.07
Добавление FieldName


2-1239712914
Darvin
2009-04-14 16:41
2009.06.07
Запись в файл и расход памяти


15-1238574089
Игорь Шевченко
2009-04-01 12:21
2009.06.07
Как давно это было :)


3-1222169341
Ega23
2008-09-23 15:29
2009.06.07
ODBC DSN с сохранением пароля


15-1238908559
charodey_mag
2009-04-05 09:15
2009.06.07
Ошибки Delphi при компиляции





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский