![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Студент
Пользователь
Регистрация: 13.11.2009
Сообщений: 65
|
![]()
Здравствуйте, начал работать с потоками прочитал несколько статей по этому поводу, ответов на свои вопросы в них не нашел
Вопросы такие: - Если создавать объект(не визуальный) внутри потока, что это дает? - Если методы объекта объявить внутри потока, что это дает? - Если создать объект в потоке, а методы в другом (основном) потоке это безопасно? и какой эффект ждать? - Важно ли использовать Synchronize, всегда ли он нужен? Нужен ли он для обращения к переменным/процедурам другого потока Ну пока что все, возможно что то неправильно называю уж извините новичка ![]() Еще вопрос ... Вот так можно? если нет то что исправить? Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]()
1. внутри потока безопасно работать только с теми объектами, про которые известно, что никто кроме него(потока) не использует. В это случае гарантированы их значения и доступность (время жизни).
2. Для того чтобы можно было бы уверенно работать с внешними объектами используется Synсhronize по сути это временная остановка процесса и переход в основной поток для выполнения указанных действий. 3. внутри потока не действует цикл обработки сообщений windows. Все сообщения отправляются основному потоку. Значить нельзя использовать те компоненты, которые пользуются для своей работы такими сообщениями. Точнее-то можно но для этого придется использовать synhonize что приводит к абсурду: использовать дополнительный поток, чтобы работать в основном (смотри предыдущее замечание). 4. Основная задача потоков: выполнение длительных по процессорному аремени операций чтобы приложение не выглядело повисшим и пользователь мог делать полезную работу. Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 26.06.2010 в 10:13. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с потоками | den49 | Помощь студентам | 0 | 06.10.2009 14:52 |
Работа с потоками | Нюська | Общие вопросы Delphi | 3 | 27.05.2009 00:52 |
Работа с потоками | Neymexa | Общие вопросы .NET | 16 | 23.04.2009 17:42 |
работа с потоками | Alex_Pro | Общие вопросы .NET | 1 | 01.07.2008 07:25 |
C++, работа с потоками | mat90x | Помощь студентам | 20 | 15.05.2008 22:20 |