У меня есть функция, которая передает данные в мое приложение в потоке, в классе (A). Данные копируются в пользовательский структуры (StructStore) в файле заголовка другого класса (B):Как мне скопировать значения изнутри потока обратно в основной поток?
.h
class Data:
public:
StructStore DataStore;
.cpp
Data dd;
StructStore DataIn; // data streams in
dd.DataStore = DataIn;
Когда я добавить точку останова и проверьте значения здесь (внутри потока), они будут такими, как я ожидал бы, как в DataStore, так и в DataIn.
Что мне нужно, это вызывать эти значения из-за пределов потока в еще одном классе (C). Я пытаюсь:
.cpp
StructStore Result;
Data d;
Result = d.DataStore;
Когда я проверяю значения здесь, они всегда равны нулю. Что я здесь делаю неправильно? Как можно безопасно копировать эти значения за пределы потока?
Возможно, вы захотите защитить себя от условий гонки и использовать какой-либо механизм защиты, например 'std :: mutex'. –
Какую библиотеку потоков вы используете? Возможно ли предоставить [минимальный код] (http://stackoverflow.com/help/mcve) или хотя бы немного больше? – coyotte508
Я пишу плагин для нереального двигателя, потоки выполняются с использованием класса FRunnable: https://docs.unrealengine.com/latest/INT/API/Runtime/Core/HAL/FRunnableThread/index.html – anti