crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в передача локальной переменной через сигнал
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 16.7.2011, 18:38
 
Цитата(mezmay @ 16.7.2011, 1:03) *
но в функцию то можно передавать указатели на локальные переменные, выход из области видимости то после функции где-то произойдет. А соединение сигнал-слот в одном потоке вроде эквивалетно прямому вызову
Сегодня ты об этом помнишь в своём слоте, а завтра нет. А если слот чужой, сторонней библиотеки? Вобщем лучше поостеречся.
когда происходит передача по значению тогда точно можно спать спокойно. Если же по указателю, то лучше уже динамически объект создать.

Цитата(ufna @ 16.7.2011, 16:47) *
по-умолчанию - QeuedConnection
Авто.
mezmay Дата 16.7.2011, 16:55
  Из асистента:
Qt::AutoConnection - (default) Same as DirectConnection, if the emitter and receiver are in the same thread. Same as QueuedConnection, if the emitter and receiver are in different threads.
ufna Дата 16.7.2011, 13:47
 
Цитата(mezmay @ 15.7.2011, 23:03) *
А соединение сигнал-слот в одном потоке вроде эквивалетно прямому вызову


Нет, если DirectConnection не задано (по-умолчанию - QeuedConnection).
Алексей1153 Дата 16.7.2011, 13:03
  sidsukana, лучше контейнер, чем такие опасные конструкции
sidsukana Дата 15.7.2011, 22:24
 
struct massiv
{
    int a[2];
};

...

void foo()
{
    massiv m;
    m.a[0] = 123;
    m.a[1] = 456;
}


Ну а там как хотите так и передавайте ваш массив.
mezmay Дата 15.7.2011, 22:03
  но в функцию то можно передавать указатели на локальные переменные, выход из области видимости то после функции где-то произойдет. А соединение сигнал-слот в одном потоке вроде эквивалетно прямому вызову
Litkevich Yuriy Дата 11.7.2011, 23:15
 
Цитата(mezmay @ 12.7.2011, 1:41) *
а это почему?
потому-что переменная умрёт, по выходу из локальной области видимости.
mezmay Дата 11.7.2011, 22:41
 
Цитата(Litkevich Yuriy @ 11.7.2011, 18:05) *
Цитата(mezmay @ 11.7.2011, 20:15) *
указатели и ссылки на локальные переменные передавать нельзя?
нельзя, но не только между потоками.

а это почему?
Litkevich Yuriy Дата 11.7.2011, 18:05
 
Цитата(mezmay @ 11.7.2011, 20:15) *
указатели и ссылки на локальные переменные передавать нельзя?
нельзя, но не только между потоками.
Цитата(mezmay @ 11.7.2011, 20:15) *
Только по значению получается передавать?
можно создать объект динамически (new), и передать указатель на него.
mezmay Дата 11.7.2011, 17:15
  Есть 2 потока. Из одного в другой надо передать массив, являющийся локальной переменной. Мне кажется что с помощью сигналов и слотов этого делать нельзя, т.к. этот массив на момент приема слотом может уже уничтожиться (т.к. между потоками связь не прямая а через события). Короче получается что указатели и ссылки на локальные переменные передавать нельзя? Только по значению получается передавать?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 12:53