Invoke in C++?
-
Hallo,
ich möchte in C++ eine Funktionalität erreichen wie bei C# das Invoke. Also so etwas:delegate void TestMethodDelegate (Data data); void TestMethod(Data data) { doSomethinWithData(data); } void CallingMethod() { Data data; Initialize(data); Invoke (new TestMethodDelegate (TestMethod), new Object [] { data }); }
Wie geht das?
-
was macht denn Invoke?
-
Mit "Invoke" meinst Du, dass die Methode in dem Thread des UI-Elements, zu welchem die aktuelle Instanz eines "Windows-Forms-Controls" gehört, aufgerufen wird, oder?
-
@Jochen Kalmbach: Ja genau...
-
Du musst DIr da selber was bauen. Es gibt nix fertiges. Du musst Deinem "Hauptthread" eine WM_APP+x Nachricht schicken, die dann die eigentliche Methode aufruft.
-
Zum "verpacken" der Funktion (mitsamt Parameter) in einen einheitlichen Container kannst du Boost.Function und Boost.Bind verwenden, das funktioniert recht gut.
-
Ich verwende das VCF- Framework http://vcf-online.org/forums/
Dort gibt es eine Methode invoke (Siehe: http://vcf-online.org/docs/src_manual/classVCF_1_1Method.html#b575e045ae43c1e907fc8692883186cb)Allerdings vertehe ich nicht ganz wie sie zu verwenden ist...
-
Ich schätze das is was anderes... oder so Ausserdem scheint es kaum jmd. zu verwenden, google codesearch findex *nix*.
Auf jeden Fall wird dort nichtmal das Wort "Thread" erwähnt, von daher reicht die Klasse alleine schonmal sicher nicht aus.