Das Objekt wird bereits an anderer Stelle verwendet
-
Hi David,
letzten Endes Wird das beschimpft was men gern hat =)....
Ich komme eigentlich aus C/C++... und finde das eben noch besser als C#
L.g.
P.s.
Ist das Mutexen jetzt okay oder nicht sooo der renner an der Stele ??
-
AlexanderKiebler schrieb:
Ich komme eigentlich aus C/C++... und finde das eben noch besser als C#
<FanBoyBash Content="Dann bleibt doch bei C++ :D" />
AlexanderKiebler schrieb:
Ist das Mutexen jetzt okay oder nicht sooo der renner an der Stele ??
Ne bei Forms kann ich dir leider nicht helfen, ich bin WPF Fanboy :D, warte einfach auf Dravere, er lebt wie du mit Forms auch noch in der Vergangenheit :D:D
-
@AlexanderKiebler,
Greifst du mit mehreren Threads auf diese Funktion zu? Sonst macht die Synchronization keinen Sinn.David W schrieb:
2. Dieses Problem ist Forms bedingt, in WPF hättest du das Problem so gar nicht - schimpfe also auf Forms (Letzte Update seitens MS war 2003 ;)) statt auf C#
1. Was ist denn deiner Meinung nach das genaue Problem?
2. Und dieses Problem taucht in WPF nicht auf? Ja, erklär das doch mal genauer.David W schrieb:
Ne bei Forms kann ich dir leider nicht helfen, ich bin WPF Fanboy :D, warte einfach auf Dravere, er lebt wie du mit Forms auch noch in der Vergangenheit :D:D
Deine Beiträge sind hier nicht wirklich hilfreich. Wenn du also nichts sinnvolles zu sagen hast, dann Unterlass es doch einfach
Grüssli
-
Hallo Alexander,
die Methode "CreateGraphics()" solltest du nicht verwenden, sondern immer nur das vorgegebene Graphics-Objekt im Paint-Ereignis, d.h.
void Paint(object sender, PaintEventArgs e) { e.Graphics.Draw(...); // oder draw_point(e.Graphics, ...) // als Parameter übergeben }
Lies dir dazu auch mal den Artikel [Tutorial] Zeichnen in Windows-Programmen (Paint/OnPaint, PictureBox) durch.
Und 2.: GDI-Objekte (wie Pen, Brush, Font, etc.) müssen immer wieder nach Benutzung 'disposed' werden, d.h. am besten mittels "using"-Anweisung:
using(Pen pen = new Pen(...)) { }
oder aber als statische Membervariable anlegen (falls es konstante Objekte sind).
-
Dravere schrieb:
David W schrieb:
2. Dieses Problem ist Forms bedingt, in WPF hättest du das Problem so gar nicht - schimpfe also auf Forms (Letzte Update seitens MS war 2003 ;)) statt auf C#
1. Was ist denn deiner Meinung nach das genaue Problem?
Er will seinem Code und Text nach zu urteilen ein und das selbe objekt mehrfach zeichnen. Und da gibts scheinbar Probleme mit gleichzeitigen zugriff auf Oberflächeninformationen.
Dravere schrieb:
2. Und dieses Problem taucht in WPF nicht auf? Ja, erklär das doch mal genauer.
In WPF braucht er das Objekt nur einmal im Code haben aber kann es in der Oberfläche so oft rendern lassen wie er möchte, keine "Synchronisation" oder ähnliches nötig
Dravere schrieb:
David W schrieb:
Ne bei Forms kann ich dir leider nicht helfen, ich bin WPF Fanboy :D, warte einfach auf Dravere, er lebt wie du mit Forms auch noch in der Vergangenheit :D:D
Deine Beiträge sind hier nicht wirklich hilfreich. Wenn du also nichts sinnvolles zu sagen hast, dann Unterlass es doch einfach
Grüssli
Wollte nur Bashen - war doch ersichtlich
Du läßt dich aber leicht ärgern
-
Du rufst (zumindest in dem Beispiel) nicht Dispose auf das Graphics-Objekt auf, dadurch werden die darunter liegenden Resourcen nicht sofort wieder freigegeben.
Best Practice wäre:
using(Graphics g = CreateGraphics()) { //... do whatever you want bla }
Synchronosieren ist eigendlich unsinn weil Windows.Forms Singlethreaded arbeitet. Wenn man von mehreren Threads aus auf Forms Elemente zugreift kommt CrossThreadMessagingException.
-
David W schrieb:
Er will seinem Code und Text nach zu urteilen ein und das selbe objekt mehrfach zeichnen. Und da gibts scheinbar Probleme mit gleichzeitigen zugriff auf Oberflächeninformationen.
Oder anders gesagt, du hast keine Ahnung und stellst irgendeine Vermutung auf. Sehr Hilfreich.
David W schrieb:
In WPF braucht er das Objekt nur einmal im Code haben aber kann es in der Oberfläche so oft rendern lassen wie er möchte, keine "Synchronisation" oder ähnliches nötig
In WinForms stellt dies ebenfalls kein Problem dar, wenn man es richtig macht. Du musst hier kein Werbung für WPF machen, sondern jemandem helfen! Ihm ist nicht geholfen mit einer Aussage à la "Nimm WPF".
David W schrieb:
Wollte nur Bashen - war doch ersichtlich
Du läßt dich aber leicht ärgern
Ich ärgere mich darüber, dass du in einem Thread rumtrollst, wo jemand Hilfe sucht. Ich bitte dich dies zu unterlassen oder du trägst die entsprechenden Konsequenzen.
Grüssli
-
Dravere schrieb:
David W schrieb:
Er will seinem Code und Text nach zu urteilen ein und das selbe objekt mehrfach zeichnen. Und da gibts scheinbar Probleme mit gleichzeitigen zugriff auf Oberflächeninformationen.
Oder anders gesagt, du hast keine Ahnung und stellst irgendeine Vermutung auf. Sehr Hilfreich.
Ich könnte dir auf anhieb in jedem Bereich hier Threads zeigen wo man anhand schlechter Fehlerbeschreibung erstmal vermutungen anstellen muss
Dravere schrieb:
In WinForms stellt dies ebenfalls kein Problem dar, wenn man es richtig macht. Du musst hier kein Werbung für WPF machen, sondern jemandem helfen! Ihm ist nicht geholfen mit einer Aussage à la "Nimm WPF".
Was an "Fanboy" und "Bash" hast du nicht verstanden?
Dravere schrieb:
Ich ärgere mich darüber, dass du in einem Thread rumtrollst, wo jemand Hilfe sucht. Ich bitte dich dies zu unterlassen oder du trägst die entsprechenden Konsequenzen.
Ah, jetzt drohen wir schon
weitere Kommentare spar ich mir, sonst sagstes noch deiner Mamma
-
Hi,
ich schlage vor, wir beruhigen uns nun alle mal wieder ein bisschen. Ich finde es nicht schlecht, das David versucht zu helfen. Wie er schon sagte, kommt er aus der WPF-Ecke, genau wie ich.
Ich verstehe eh nicht, warum man sich noch mit WinForms beschäftigt, aber ist ein freies Land. Ich habe zwar keine Ahnung davon, aber ich denke locks hat eine vielversprechende Lösung beigesteuert.
Aber zum Thema Mutex: Willst du dich wirklich um die Threadsynchronisation kümmern, nur um einige Billige Shapes zu zeichnen? Das Rad neu zu erfinden, ist nicht nur zeitaufwändig, sondern auch fehleranfällig.
Gruß
-
2AndAHalfBit schrieb:
ich schlage vor, wir beruhigen uns nun alle mal wieder ein bisschen. Ich finde es nicht schlecht, das David versucht zu helfen. Wie er schon sagte, kommt er aus der WPF-Ecke, genau wie ich.
Es versucht ja nicht zu helfen, sondern trollt nur rum!
2AndAHalfBit schrieb:
Ich verstehe eh nicht, warum man sich noch mit WinForms beschäftigt, aber ist ein freies Land.
Gibt tausend Gründe, wieso dies der Fall sein könnte, aber das ist auch völlig egal. Er will Hilfe zu WinForms, also gibt man ihm auch entsprechende Hilfe.
Und jetzt bitte nur noch Beiträge zum Thema! Alles weitere wird kommentarlos gelöscht oder rauseditiert.
Grüssli