ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
21 июля
43244 Топик полностью
JeDay (04.11.2005 18:02, просмотров: 1) ответил Jean Labrosse на Да, сообщения передаются по указателю. То есть необходимо выделить память под сообщение, затем OSQPost(), затем в задаче которая ждет ( OSQPend() ) освободить память после обработки.
Ответ: Я и так преобразовываю с void*. А на счет выделения памяти под сообщение... У меня такой вопрос: Если я объявил массив А локально(т.е. не через new и delete), посылаю в очередь сообщений, у которого найвысший приоритет, указатель на этот массив. Затем тут же перезаписываю массив А другими данными. После перепланировки другой поток получает сообщение(указатель на массив А) и вычитывает данные, которые уже изменены. // Task 1 INT8U *A, err; A = "Hello"; ... err = OSQPost(evQ, (void*)A); A = "Bad"; //------------ // Task2 INT8U *msg, err; ... msg = OSQPend(evQ, 0, &err); //------------------ Чему равно msg ? "Hello" или "Bad" ? Ответьте на этот вопросик плиз.