Ok, ich denke ich habe dich vorhin falsch verstanden. In deinem Fall geht es wahrscheinlich viel einfacher. Ist es nicht so, dass der Main-Thread einfach immer wieder den Rechen-Thread füttert, währenddessen der Rechen-Thread nicht auf bestimmte Objekte zugreifen soll?
In diesem Fall brauchst du von Monitor eigentlich nur Enter() und Exit(). Jeder Thread, der auf einem Objekt was machen will, sollte vorher Monitor.Enter() aufrufen. Nur ein Thread kann den Monitor eines Objekts gleichzeitig betreten. Wenn neue Daten ankommen, muss dein Main-Thread einfach nur versuchen, den Monitor zu betreten. Sobald das erfolgreich war, kann er die neuen Daten reinschaufeln und den Monitor wieder verlassen. Dein Rechen-Thread sollte immer prüfen, ob der Main-Thread den Monitor betreten möchte (einfach ne Variable, die sich das merkt, verwenden) und den Monitor in diesem Fall verlassen und neu betreten. Das neu betreten klappt dann erst wieder, wenn der Main-Thread den Monitor verlassen hat, also fertig ist.
In C# gibt es das lock-Statement, was das ganze so weit verbirgt, dass man die Monitor-Klasse gar nicht mehr im Code benutzt. Man schreibt einfach
lock( myObject ) {
... // was mit myObject machen, nur ein Thread kann gleichzeitig myObject locken
}
Vielleicht gibt es dazu in C++.Net auch ein Äquivalent.
Hallo
Ich versuche mit C++/.NET eine Leiste zu schreiben die wie die Startleiste am Bildschirmrand angedockt ist. Geöffnete Fenster sollen, wie bei der Startleiste davor auf hören, sie also nicht überdecken oder hinterlaufen.
Mein Problem ist es das ich mich noch nicht sehr viel mit .NET gearbeitet hab und irgendwie keine Ahnung hab wie ich das anstellen soll.
Ich hoffe, dass schon Mal jemand etwas Ähnliches gemacht hat und mir helfen kann.
LG
Hawker
[quote="heyhey"]
r0flcopt0r schrieb:
string schrieb:
immerhin bin ich schlau genug um für sowas in der msdn doku nachzuschauen und stell hier nicht so saudumme fragen
naja ok ich kann nicht naschauen das ist aber auch nicht mein leben.
tja du hast keine freunde, spammst nur, es müssen dich leute hassen, du sat keine freundin/frau und hängst den ganzen tag nur hier rum.
du darfst entscheiden was schlimmer ist
mfg
süß deine kleinen versuche. nur leider alle falsch
PS: Nichtma zitieren kannst du
bjmicha schrieb:
Hallo zusammen,
ich habe eine ArrayListe. In dieser Array Liste möchte ich Stings als auch int Werte speichern. Bei den Strings soweit kein Problem.
Nur wir bekomme ich die int Werte in die ArrayList?
Beim Versuch
ArrayList *tmp = new ArrayList();
tmp->Add(4);
sagt er folgendes
[...]Routenplaner.cpp(34): error C2664: 'System::Collections::ArrayList::Add': Konvertierung des Parameters 1 von 'int' in 'System::Object __gc *' nicht möglich
lfe
Danke für Eure Hilfe!
Kann sein das er die 4 als unmanaged Int nimmt die du dann nicht zu ner managed ArrayList hinzufügen kann? Weiß net, hab nie was mit managed C++ gemacht, aber eventuell musst du halt explizit angeben das es dr managed int ist.
BZip2.Compress(Path.OpenRead("D:\\Exchange\\"), Path.Create("C:\\Test.ftz"), 4096);
So hab ich jetzt versucht den Ordner D:/Exchange zu zippen. Funzt aber .net.
Access denied. Weiß jemand die Ursache ? Danke!
Servus,
schmeiss mal google an und gib >>> "raw sockets" +c# <<< ein.
Schöne Erklärungen findest du dort. Auch Forenbeiträge. Ein Hinweis von MS und ab dem 10 Link sogar ein Beispiel von CodeProject.
mfg
Hellsgore
EDIT: Suche auch einfach mal bei www.codeproject.com nach Raw Sockets. Dort gibts einige Beispiele für C#.
Ich würde vermuten, du mußt nach dem Zeichnen des Wasser-Polygons einen weiteren floodfill() Aufruf mit Koordinaten im einzufärbenden Bereich (und Farbe BLUE) ergänzen, damit das Wasser eingefärbt wird.
Randfrage: Was hat das Problem eigentlich mit C# zu tun? Das sieht eher nach ordinärem (und nichtmal ANSI-konformen) C-Code aus.
....habs selber geloest bekommen:
Stream ImageStream = new WebClient().OpenRead("http://localhost/...");
Image i = Image.FromStream(ImageStream);
trotzdem danke allen die sich auch dran versucht haben
Ich will einen Videostream aus einer an einen PC angeschlossenen Kamera (Webcam ist glaube ich in diesem Falle nicht der passende Begriff, oder) per eigens geschriebenen Software scannen.
Eure Tips hören sich vielversprechend an, und ich werds ausprobieren. Bei Zeiten werde ich mit Bestimmtheit zu diesem Thread noch ein paar Fragen stellen müssen, also bis dann und
vielen Dank.
ja, ich weiss, dass ich jedesmal das zeug neu anlege, ich hatte auch vorhin geschrieben, ich hab das nur mal schnell getestet, und da hab ich noch nicht viel aufwand betrieben, ich wollte nur sehen obs funktioniert
ne ich mein C hab das falsche forum erwischt *ups*
und leider hab ich es auch nicht ganz kapiert wie du es meinst köntest du veleicht ein beispiel machen? thx