Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Suchergebnisse

Suchergebnisse 1-20 von insgesamt 83.

Werbeanzeige

31.05.2011, 15:18

Forenbeitrag von: »Zeus«

Multithread Performance in C#

Hm ... ich bin grad überfragt was du meinst aber ich denke du ziehlst mit der Frage auf "9" ab.

31.05.2011, 01:13

Forenbeitrag von: »Zeus«

Multithread Performance in C#

Danke für eure vielen Antworten. Das Problem schien tatsächlich am Overhead gelegen zu haben. Ich habe es jetzt wieder umgestellt auf Seriell und die Bewegungen sind wieder flüssig -> allerdings geht die Performance in die Knie wenn mehrere Objekte auf dem Feld sind. Den Seriellen Teil auf mehrere Threads aufzuteilen ohne jedem Objekt einen eigenen zu geben scheint mir aber im Moment nicht Möglich. Da muss ich dann nochmal ganz neu übers Grundgerüst nachdenken bzw nachschauen ob ich es auf Threa...

30.05.2011, 04:07

Forenbeitrag von: »Zeus«

Multithread Performance in C#

Sorry Doppelposting -> Bitte entfernen

30.05.2011, 04:07

Forenbeitrag von: »Zeus«

Multithread Performance in C#

Danke für die schnelle Antwort zu so später Stunde Hmmmm ... Ist der Aufwand um eine List<> zu übergeben so hoch das soviel Overhead entstehn kann ? ... Ich habe auch schon darüber nachgedacht die Idee dann aber wieder vorworfen. Im gesamten Projekt verwende ich nur 2 Locks als Schutz für die zentrale List<>. Ich dachte das es bei deisem Szenario nicht wichtig ist alles Synchron zu halten. Also gut ... zum Aufbau. Die Grafik fragt in jedem Updatezyklus bei der Logik nach den Elementen die gezeic...

30.05.2011, 03:15

Forenbeitrag von: »Zeus«

Multithread Performance in C#

Guten Abend allerseits, im Moment arbeite ich an einer Physiksimulation. Beim Berechnen und dastellen der Szenerie hat sich bereits vor einigen Tagen das Problem aufgetan das die Performance unter aller Sau war. Ein Umstieg auf DX im Grafikbereich sorgte dafür das die Zeichengeschwindigkeit nun unabhängig von dem dazustellenden unter 20ms liegt (also ausreichend). Am nächsten Tag stellte sich raus das die Updatezyklen für die Logik viel zu lang sind, also teilte ich den Grafik und den Logikteil ...

09.04.2011, 16:35

Forenbeitrag von: »Zeus«

Singleton<Derived> in C#

@TrommlBomml: Du meinst den Ansatz über statische Instanzierung oder ? ... Habe ich auch mit dem Gedanken gespielt. Habe es dann aber wieder vorworfen da es mir, je nach dem wieviele Singleton Klassen noch dazu kommen zu umständlich erscheint jedes mal die Zugriffsfunktion zu implimentieren. Ja über die Tatsache das Mehrfachvererbung nicht geht habe ich mir schon das eine ums andere Mal den Kopf zerbrochen. Da ich ansich in C++-Code und dieses Feature dort gerne verwende (Ich weis es können Fehl...

09.04.2011, 16:06

Forenbeitrag von: »Zeus«

Singleton<Derived> in C#

Das mit dem "where" klappt zwar und er erlaubt mir die Syntax des Singletons aber in Klassen die davon erben muss ich dann den Konstruktor public setzen. Dies ist nicht gerade im Sinne einer Singelton. Ich benötige das Singleton für ein globales Registry und eine globale StateMachine. EDIT: Habe es jetzt mit etwas rumprobiern hin bekomen wie ich es möchte Das where Schlüsselwort war die richtige Antwort. Ich muss mich da echt mal in die C# spezifischen Sachen einarbeiten. Danke Mfg Zeus

09.04.2011, 15:19

Forenbeitrag von: »Zeus«

Singleton<Derived> in C#

Hey Leute, Im Moment arbeite ich an einem kleinen C#-Projekt. Im diesem Rahmen benötige ich ein Singleton von dem geerbt werden kann (Damit ich mir die Implimentierung des Singletons bei den Child-Klassen sparen kann). Mein momentaner Ansatz sieht wie folgt aus: C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 public class TSingleton<TDerived> { private static TDerived instance; protected TSingleton() { } public static TDerived Instance() { if(instance == null)instance = new TDerived(); return instance; } ...

12.09.2010, 03:31

Forenbeitrag von: »Zeus«

CriticalSection vs. Mutex

Zitat von »dot« Zitat von »Zeus« Das mit dem dem CS alles zusammen habe ich probiert. Also im Constructor dann das Initialisiren von der CS und im Destruktor löschen. Dabei habe ich aber das Problem gehabt das gelegentlich das die CS doppelt Initialisirt oder gelöscht wurde (also von zwei Threads) das hat wieder zum gleichen Fehler geführt wie wenn ich es gleich weg lasse. Wie kann das passieren. Das kann doch nur passieren wenn du zwei CS Objekte machst und nicht nur eines für beide Threads!? ...

11.09.2010, 01:39

Forenbeitrag von: »Zeus«

CriticalSection vs. Mutex

Nunja, die lock und unlock habe ich, da ich mir gedacht habe wenn ich ein rießigen Quellcode habe und den CS nicht weiter blockieren will gebe ich ihn schnell per hand frei ... So können andere Threads weiter arbeiten und müssen nicht warten bis das CS sich von aleine auflöst. Oder ich brauche in einer Funktion ein CS mehrfach. So kann ich ihn zwischenrein immer wieder freigeben und andere Threads können in der Zeit an ihre Daten. Das mit dem dem CS alles zusammen habe ich probiert. Also im Cons...

10.09.2010, 20:13

Forenbeitrag von: »Zeus«

CriticalSection vs. Mutex

Ok, vielen Dank für die ausführliche Erklärung. Hilft mir wirklich weiter da ich im Moment nicht wirklich weis was wo wie Sache ist. Also müsste ich damit der Constructor Sinn ergibt eine Referenz (Pointer) auf mein CS übergeben ? [Das bringt mich dann aber wieder zum nem GarbageCollector den ich im Moment (auch) schreibe. Ohne den ist nicht gewährleistet das der Lock auch mit einem gültigen CS arbeitet] Das mit dem mode da hast du Recht. Es macht keinen Sinn. Ich habe nicht bedacht das mein Thr...

10.09.2010, 13:37

Forenbeitrag von: »Zeus«

CriticalSection vs. Mutex

Jap, habe mir den Link auch schon gespeichert. Werde mich da einarbeiten. Sorry wenn ich so viele Fragen stelle nur ich fange jetzt erst mit mehreren Threads an Wow ... viele Fragen. Dann mach ich mich mal an die Beantwortung ... Lockable ist eine Basisklasse die 2 virtuelle Funktionen hat und sich von "Unique" ableitet. Auf die weise möchte ich sicher stellen das alle Mutex, Semaphore und CriticalSections in jeder Form zumindest ein lock() und unlock() anbieten und einen privaten copy-construct...

10.09.2010, 04:30

Forenbeitrag von: »Zeus«

CriticalSection vs. Mutex

Ja, das Beispiel habe ich hier schonmal ein einem Diskussionsthread gefunden (samt etwas mehr Listing). Allerdings bin ich daraus nicht wirklich schlau geworden. Warum Wrappe ich nochmal eine Klasse um das Ganze wenn ich last but not least nur eine Funktion aufrufe. Mein momentaner Versuch sieht so aus. Sag mir wenn ich auf dem totalen Holzweg bin. C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ...

10.09.2010, 00:56

Forenbeitrag von: »Zeus«

CriticalSection vs. Mutex

Da ich nativ auf Windows aufbauen will interessieren mich die Win-API Bibliotheken am meisten ... wenn du Tipps hast ... bin um alles Dankbar ... Im Moment knobel ich an einem Exception sicheren Lock ... Wenn eine Exception auftaucht ... Wird die Klasse in der sie auftaucht dann abgebaut ? Also ich kann ich einfach einen Mutex kapseln und der wird durch die Exception und das Abbauen der Threadklass mit abgebaut?

09.09.2010, 13:19

Forenbeitrag von: »Zeus«

CriticalSection vs. Mutex

Danke, sowas hab ich gesucht aber seit MSDN umgestellt hat finde ich Nichts mehr ... Und C# hilft mir grad nicht weiter auch wenn MS drauf besteht das es das ist was ich such xD ...

09.09.2010, 12:23

Forenbeitrag von: »Zeus«

CriticalSection vs. Mutex

Hey Leute, wie der Titel erahnen lässt geht die Frage um den vergleich der threadblockierenden Techniken und deren Einsatz. Da ich im Moment zu Testzwecken eine kleine ThreadSave-Bibliothek zusammenschreibe, und mit den oben gennanten Techniken herumspiele wollte ich zum einen Wissen worin sich eine CriticalSection von einem Mutex unterscheidet ? Ich habe mal gelesen das Mutex zwischen mehreren Prozessen geteilt werden kann. Ist das der einzige Unterschied ? Wenn ja kann man sich in einem Projek...

31.08.2010, 11:23

Forenbeitrag von: »Zeus«

Funktionspointer von abgeleiteter Klasse in Mutterklasse

@GDChris: Danke für deine Antworten Ich les es mir mal durch. @dot: dein Comi ist mir iwie schleiwehaft. Also eine statische Funktion versteh ich noch. Aber wie meinst du das mit "mein Objekt über den LPVOID Parameter zu übergeben" ? Also soll ich dann C-/C++-Quelltext 1 2 3 4 5 6 class bla { ... }; bla b; ThreadA::ThreadProc(&b); oder wie genau soll ich das verstehn ? Und irgentwie habe ich das Gefühl das es dann an dem vorbei läuft wo ich hin will. graaz Zeus

31.08.2010, 03:26

Forenbeitrag von: »Zeus«

unsigned long in float

DWORD ist soweit ich weis ein INT ... zumindest gebe ich bei Funktionen mit Rückgabetyp DWORT meistens einfach eine 0 zurück. Sollte Speed ein FLOAT sein (was ich annehme) wird der ganze Ausdruck zu INT und dann zu nem FLOAT gecastet (was wenig Sinn ergibt). Das mit dem "ins Nirvana abdrifften" kenn ich. Du musst mal Step-for-Step den Debugger durchgehn und es iwo mit Absicht mit einem negativen Wert füttern ... Wahrscheinlich steht dann iwas wie "#" drin ... Also kann er nicht mit rechnen und e...

31.08.2010, 03:01

Forenbeitrag von: »Zeus«

Funktionspointer von abgeleiteter Klasse in Mutterklasse

Ich weis das ich mir wahrscheinlich so langsam einen Namen mit sehr seltsamen Fragen mache, nichts desto trotz ... zum Problem ... Als erstes denke ich ist ein Codeausschnitt gut sonst versteht wohl niemand was ich meine bzw. bezwecken will. C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 template<class T> class Thread { typedef DWORD (T::*Sub)(LPVOID lpParam); private: HANDLE m_Handle; private: DWORD m_ID; public: Thread(Sub ptr) { this->m_Handle = CreateThread(NULL, 0, *ptr...

Werbeanzeige