Ich habe eine Funktion, die Daten in einem Thread in Klasse (A) in meine Anwendung streamt. Die Daten werden in einer benutzerdefinierten Struktur (StructStore) in der Header-Datei einer anderen Klasse (B) kopiert:Wie soll ich Werte innerhalb eines Threads in den Hauptthread kopieren?
.h
class Data:
public:
StructStore DataStore;
CPP
Data dd;
StructStore DataIn; // data streams in
dd.DataStore = DataIn;
Wenn ich einen Haltepunkt hinzufügen und überprüfen Sie die Werte hier (innerhalb des Threads), sie sind so wie ich es erwarten würde, sowohl im DataStore, als auch im DataIn.
Was ich brauche, ist, diese Werte von außerhalb des Threads in noch einer anderen Klasse (C) zu nennen. Ich versuche:
CPP
StructStore Result;
Data d;
Result = d.DataStore;
Wenn ich die Werte hier überprüfen, sie sind immer Null. Was mache ich hier falsch? Wie kann ich diese Werte sicher außerhalb des Threads kopieren?
Sie möchten sich wahrscheinlich vor rassistischen Bedingungen schützen und einen Schutzmechanismus wie 'std :: mutex' verwenden. –
Welche Threading-Bibliothek verwenden Sie? Ist es möglich, einen [minimalen Code] (http://stackoverflow.com/help/mcve) oder zumindest ein bisschen mehr zur Verfügung zu stellen? – coyotte508
Ich schreibe ein Plugin für unreal engine, das Threading erfolgt mit der Funnable-Klasse: https://docs.unrealengine.com/latest/INT/API/Runtime/Core/HAL/FRunnableThread/index.html – anti