Главная страница
    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.48 MB
Время: 0.004 c
15-1238908559
charodey_mag
2009-04-05 09:15
2009.06.07
Ошибки Delphi при компиляции


15-1238603200
Городской Шаман
2009-04-01 20:26
2009.06.07
Microsoft уроды со своей VS.


3-1222218828
РФМ
2008-09-24 05:13
2009.06.07
Наличие картинки


3-1222067899
Клён новичок
2008-09-22 11:18
2009.06.07
Как подставить переменную в запрос?


15-1237999517
Городской Шаман
2009-03-25 19:45
2009.06.07
Offline репликация данных своими руками.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский