![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.03.2010
Сообщений: 27
|
![]()
Доброго времени!
Поставил цель побороться с WinSock. Но столкнулся с проблемой с потоками. Не получается в поток передать параметры. Подскажите что не так. Может из-за того что класс и память получается разная? Это лишь кусочек кода. Код:
![]() s получается пустой. точнее какой то мусор наверное. тут p:=PParamThread(s)^; очень большое значение. Что не так, уже сутки думаю.... Спасибо |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
прототип входа в поток описан так:
Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
Последний раз редактировалось veniside; 23.09.2012 в 00:19. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 13.03.2010
Сообщений: 27
|
![]()
процедуру вынес за пределы класса и все успешно передается... а почему тогда в классе приходит мусор? и что нет решения?
|
![]() |
![]() |
![]() |
#4 | ||
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> а почему тогда в классе приходит мусор?
Цитата:
Цитата:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
||
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 13.03.2010
Сообщений: 27
|
![]()
спасибо!
и все же появился вопрос... ПОЧЕМУ ТАК передается... где можно подробно это прочитать... ? уж больно интересно |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
почему self ожидается первым параметром? ну, так устроены все методы классов. Можно считать, что любой метод класса (кроме конструктора), объявлен примерно так:
Код:
Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#7 | ||
Форумчанин
Регистрация: 11.04.2012
Сообщений: 212
|
![]() Цитата:
Прототип BeginThread() за исключением соглашения о вызове один-в-один совпадает с CreateThread, так что ничто не мешает и в BeginThread() передать параметром свой объект, так же как в CreateThread .. Ну и получить при вызове BeginThread() еще и "бонусы" : как минимум сэкономить на реализации собственной предобработки исключений и автоматически известить встроенный дельфийский менеджер памяти о потенциальных мультипоточных к нему обращениях. Цитата:
Последний раз редактировалось xoodoo; 23.09.2012 в 19:55. |
||
![]() |
![]() |
![]() |
#8 | |
Пользователь
Регистрация: 13.03.2010
Сообщений: 27
|
![]() Цитата:
спасибо! я обязательно это запомню. и при первой же возможности применю. огромное спасибо! |
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> А чего там "не сделали" ?
ну могли бы TObject расширить ещё одним виртуальным методом, который бы вызывался из BeginThread(). Было бы красиво. > не думал что так можно. кинуть весь класс в параметры экземпляр класса -- это указатель, и параметр в CreateThread() тоже имеет размер указателя, так что проблем не возникает.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
Последний раз редактировалось veniside; 23.09.2012 в 20:08. |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 13.03.2010
Сообщений: 27
|
![]()
не сделал потому что... потому что сервер не хочет видеть клиента. хотя через TCPView вроде они подключаются.
вот когда они увидят друг друга, вот тогда попробую все это применить |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Странные таблицы | Port | Microsoft Office Word | 4 | 18.05.2011 12:01 |
странные проблемы с с++ | Plastilin | Общие вопросы C/C++ | 9 | 21.02.2010 03:50 |
Странные ошибки. | Rio309 | Общие вопросы Delphi | 2 | 19.10.2009 19:22 |
Странные задачи | L_M | Свободное общение | 60 | 19.05.2009 08:54 |