Suchergebnisse
Suchergebnisse 1-20 von insgesamt 83.
Hm ... ich bin grad überfragt was du meinst aber ich denke du ziehlst mit der Frage auf "9" ab.
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...
Sorry Doppelposting -> Bitte entfernen
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...
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 ...
@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...
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
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; } ...
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!? ...
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...
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...
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...
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 ...
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?
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 ...
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...
@David_pb: Danke, jetzt ist es klarer @Dot: Ok, wird gemacht CLOSED
@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
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...
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...