Laden...

Forenbeiträge von ujr Ingesamt 1.688 Beiträge

26.04.2013 - 15:40 Uhr

Normal mache ich das immer mit XmlDocument, was in diesem Fall ja nicht geht.

Warum sollte das nicht gehen? MaW - was genau meinst Du, das nicht geht?

Was Dir helfen wird, ist OuterXml.

25.04.2013 - 09:42 Uhr

Wenn Monitor tatsächlich nicht FIFO wäre, dann könnte dein Code Stravation verursachen, wenn immer wieder der gleiche Thread, der eigentlich noch nicht dran ist, sich vordrängelt und als erster die Sperre bekommt, nur um festzustellen, dass er noch nicht dran ist und damit den Ablauf neu in Gang zu setzen, bis in alle Ewigkeit.

Interessanterweise tritt aber genau das bei den CRITICAL_SECTION's in Windows seit Vista/Windows 2003 SP1 auf:
CriticalSection Changed
Man will wohl damit Leistungseinbußen vermeiden:
Critical Section Objects

Wir hatten gerade den Fall, wo das Problem nicht durch Sleep, sondern durch ein per Timeout zeitlich begrenztes blockierendes Lesen von externer Hardware verursacht wurde (C++ Anwendung mit herstellerspezifischer DLL). Eine andere "Lösung", als durch Sleep(1) nach dem Unlock das alte Verhalten nachzustellen, konnte ich nicht finden.

Es ist schon unschön, wenn die Software solche Interna berücksichtigen muss bzw. davon abhängig ist.

25.04.2013 - 09:14 Uhr

Hallo,

benutzt Du P/Invoke (bspw. DLLs von Drittherstellern)?

10.04.2013 - 15:36 Uhr

An sich hast Du damit schon alles, was rsync ausmacht 😉

Der Geschwindigkeitszuwachs durch zwei Prüfsummen kommt ja dadurch, dass die aufwändigere nur selten berechnet werden muss. Zusätzliche "Sicherheit" ist ein Nebeneffekt.

10.04.2013 - 15:12 Uhr

Hallo,

es könnte helfen, die Funktionalität nach C++/CLI auszulagern, um eine höhere Geschwindigkeit zu erreichen.

Edit: wie wäre es, eine schnelle Prüfsumme mit byteweisem Vergleich nach Bedarf (kann beim ersten Unterschied abbrechen) zu kombinieren?

05.04.2013 - 12:37 Uhr

Ich würde vermuten, dass die Mess-Software sich das Executable vor dem Starten anschaut, und wenn es keine Konsolenanwendung ist, sie nicht startet.

Man kann ja auch eine WindowsForms-Anwendung als Konsolenanwendung kompilieren. Dann wäre die Mess-Software zufrieden und es gäbe trotzdem ein Fenster zur Ausgabe. Käme auf einen Test an.

05.04.2013 - 10:42 Uhr

Das Problem ist dass die Mess-Software ausschließlich Konsolenanwendungen zulässt, was anderes kann man leider gar nicht erst aufrufen 😦

Kannst Du das näher erklären?

02.04.2013 - 10:05 Uhr

Auch ist nicht ersichtlich, wie die Daten ausgegeben werden - vielleicht liegt der Fehler ja dort?

Du könntest auch unter Umgehung des DataReceived-Ereignisses mit einem eigenen Empfangs-Thread arbeiten. Das läuft meist zuverlässiger.

18.03.2013 - 10:45 Uhr

Hallo,

Du könntest Deine Kompilate außerhalb DropBox erzeugen lassen.

Es ist ohnehin weder schön noch nützlich, jedes (temporäre) Zwischenprodukt immer wieder synchronisieren zu lassen.

12.03.2013 - 09:47 Uhr

Hallo,

hast Du schon den Debugger benutzt? Es muss sich doch herausfinden lassen, welche Bedingung warum fehl schlägt.
s. dazu auch [Hinweis] Wie poste ich richtig? 4a, 4c

09.03.2013 - 09:15 Uhr

Hallo,

es dürfen keine GUI-Elemente im Backgroundworker erzeugt werden:
[FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke)

06.03.2013 - 23:47 Uhr

Sollte man meinen, ist aber nicht so. Ticks DateTime sind meist != Stopwatch Ticks.

Oben steht aber "ms", nicht Ticks. Wobei auffällt, dass die Stopwatch nahezu exakt das Doppelte von DateTime anzeigt.

Der Multimediatimer hat im übrigen eine Auflösung von (bestenfalls) 1ms, die er auch (im Mittel) einhält. Aber das ist bei 10ms ähnlich, wobei da die einzelne Abweichung natürlich nicht so ins Gewicht fällt.

06.03.2013 - 23:40 Uhr

Eigentlich wollte ich nicht mehr antworten

Warum nur? 😁

Ohne jetzt auf jede Unklarheit oder Mehrdeutigkeit einzugehen - hast Du im Router Portforwarding eingerichtet?

05.03.2013 - 11:22 Uhr

Hallo,

aber wo in Deinem WPF-Programm initialisierst Du die Konsole?

Kann es sein, dass Du schon Console.Write aufrufst, bevor AllocConsole ausgeführt wird? Mit anderen Worten - bei mir funktioniert's, wenn die Reihenfolge richtig ist.

05.03.2013 - 09:33 Uhr

Hallo,

wo erzeugst Du die Konsole und wie gibst Du Text aus?

24.02.2013 - 00:44 Uhr

Hallo,

das korrekte Stichwort hat doch herbivore schon gegeben: Watchdog. Da lässt sich jede Menge zu finden.

Dabei werden dann bspw. die Kontakte des Reset-Knopfs genutzt - eine separate Steckdose ist nicht nötig, mithin auch kein (zeitverzögertes) Ein- und Ausschalten.

20.02.2013 - 09:15 Uhr

Hallo,

lass das ".Connect" weg - UDP ist verbindungslos. Connect (s. MSDN) tut meist nicht das gewünschte.

Ansonsten kann man nur raten, zumal man ja jede Information erfragen muss. Z.B. kommunizierst Du im LAN oder über Internet, wie sind die IP-Adressen usw.

14.02.2013 - 22:45 Uhr

Hallo,

eine entsprechende Linie kannst Du erst ab dem Loaded-Event zeichnen.

Liegen Width und Height fest, kannst Du auch diese verwenden.

06.02.2013 - 13:41 Uhr

womit man etwa 95x mehr Zeit zum Erraten benötigt.

Nun ja - gleiche Zeichen erleichtern häufig die Kryptoanalyse. Brute-force ist aufgrund der Dauer ohnehin selten das Mittel der Wahl.

Insofern spielt die Zusammensetzung schon eine Rolle. Ansonsten könnte man ja auch 100x '.' nehmen und hätte ein unknackbares Passwort.

31.01.2013 - 18:49 Uhr

Also möchte ich den toolStripButtons im Code einen Namen geben,
der mit dem auf der Oberfläche korrespondiert

Tun sie das nicht immer? Vielleicht erklärst Du Dein Problem an einem Beispiel?

29.01.2013 - 14:15 Uhr

Hallo,

Du könntest in einer Wrapper-Klasse während der Planung alle erzeugten Zufallszahlen zwischenspeichern und die später "abspielen".
Beim Umschalten in den "Spielmodus" bleiben die Zahlen erhalten und werden bis zum Ende wiedergegeben, beim Umschalten in die Planung werden alte Zahlen gelöscht und anschließend neu erzeugt.

17.01.2013 - 16:08 Uhr

Hallo,

unabhängig vom bisher gesagten:

Oder liegt der Fehler irgendwo anders?

Welcher Fehler denn?

Ich habe einfach das Gefühl, dass bei dem TryTake() irgendetwas schief geht und die Consumer Threads irgendwie irgendwo etwas "verlieren".

ist keine hilfreiche Beschreibung.

Logging müsste Dir helfen, wenigstens das Auftreten des Fehlers nicht nur zu "fühlen".

20.12.2012 - 14:52 Uhr

Handelt es sich um eine richtige serielle Schnittstelle oder einen USB-RS232 umsetzer?

Mit anderen Worten - bei der USB-Variante geht die Schnittstelle im System verloren und müsste deshalb wieder neu geöffnet werden. Ansonsten erkennt das System das Entfernen des (seriellen) Steckers nicht.

17.12.2012 - 11:34 Uhr

Das Problem ist, dass der Thread mit FileInfo.CopyTo() Dateien kopiert, die auch sehr groß sein können. Von daher könnte es mit einer Variable zum Thread Beenden eine Weile dauern bis der Thread darauf reagieren kann.

Schau mal das an:
Can I show file copy progress using FileInfo.CopyTo() in .NET?

CopyFileEx erlaubt auch das Abbrechen des Kopierens. Angenehmer Nebeneffekt ist die Fortschrittsanzeige.

Das wäre auf jeden Fall ein möglicher Workaround, aber halt nicht ganz "schön".

Deutlich "schöner" als Hängenbleiben.

17.12.2012 - 11:18 Uhr

Die Exception werfe ich nach Klick auf den Cancel Button mit Thread.Abort.
Der Thread macht hauptsächlich Kopiervorgänge und Dateivergleiche. Von daher wäre es gut, wenn ein Kopiervorgang einer großen Datei auch abgebrochen werden kann. Daher habe ich mich für Thread.Abort entschieden.

Wie im verlinkten Artikel geschrieben, ist es sinnvoller eine Abbruchvariable zu benutzen. Warum geht das nicht?

Vielleicht wäre es möglich, bei "Cancel" die Änderungen ohne Invoke aus dem GUI-Thread zu erledigen und den Thread bei ThreadAbortException direkt zu verlassen. Aber der ersten Alternative würde ich den Vorzug geben.

17.12.2012 - 11:12 Uhr

Hallo,

Hat irgendwer Infos zu dem Thema? Oder ne Idee wie man an die Problematik rangehen könnte?

Der Explorer verwendet dafür Shell-Erweiterungen. Da müssten sich Informationen finden lassen. Eventuell hilft das hier:
How to construct path for mtp devices (usable in folder browse dialog)?

17.12.2012 - 11:04 Uhr

Hallo,

vermutlich kommst Du mir "DirectShow" weiter.

17.12.2012 - 11:03 Uhr

Woher kommt überhaupt die ThreadAbortException?? Was tut "// Some code"?

Was für Dich "brauchbar" ist, lässt sich schwer sagen. Aber wichtig wäre schon mal dies: How To Stop a Thread in .NET (and Why Thread.Abort is Evil)

17.12.2012 - 10:42 Uhr

Darum suche ich gerade nach dem Fehler 😃

Fehlermeldung bei Google einzugeben hat nichts gebracht?

Unabhängig davon solltest Du die drei Invoke-Aufrufe zusammenfassen.

09.12.2012 - 18:23 Uhr

Selbst wenn die Eingangsfrage "erledigt" scheint, möchte ich noch Assembla erwähnen, damit hab' ich ganz gute Erfahrung gemacht. 1Gb Speicherplatz, beliebige Anzahl Repositories (SVN, Git, ...)

20.11.2012 - 20:26 Uhr

Hallo,

Du hattest also das Grid innerhalb eines Click-Events "ausgeblendet". Beim Loslassen der Maustaste (MouseUp) löst das Click-Event des Images aus.
Dann hätte es wahrscheinlich auch funktioniert, wenn Du das Grid bei MouseUp "ausgeblendet" hättest.

15.11.2012 - 15:26 Uhr

Hi,

was passiert, wenn Du die Bitmap auch innerhalb des Invoke erzeugst?

08.11.2012 - 17:20 Uhr

Hallo,
benutzt Du Multi-Threading? Application.DoEvents?

23.10.2012 - 17:01 Uhr

Hallo,

und das funktioniert? Du wartest in "SendMessage" auf ein Ereignis, dass Du erst in ApplyResult setzt?
Und welche Queue-Implementierung benutzt Du? Hoffentlich eine thread-sichere.

10.10.2012 - 10:48 Uhr

Hallo,

DigitalIoControlStateChanged ist doch gar kein event, sondern eine Methode.
S. auch [FAQ] Eigenen Event definieren / Information zu Events (Ereignis/Ereignisse)

08.10.2012 - 15:33 Uhr

Hallo,

s. I can't Add dll to References in Visual Studio 2010

Aber das hättest Du auch selbst finden können.

02.10.2012 - 17:34 Uhr

Hallo,

dann wirst Du wohl anhand RFC1952 schauen müssen, wo die Unterschiede liegen.

02.10.2012 - 16:53 Uhr

Du könntest noch mit "ProcessMonitor" nachschauen, ob Dein Dienst gefunden und gestartet wird.

02.10.2012 - 16:51 Uhr

Hallo,

wie sieht denn Dein Quelltext zur Komprimierung mit SharpZipLib aus?

Es sollte auch beachtet werden, dass Zip, Gzip, Zlib 3 unterschiedliche Dinge sind!

Wie bekomme ich die gleichen resultate, wie mit der php funktion gzcompress?

Warum denn? Identisch sein müssen die entpackten Daten. Außerdem sollte man in php besser mit gzencode arbeiten, wenn man mit C#-GzipStream interoperieren will.

02.10.2012 - 16:21 Uhr

Da die Kommunikation als Request/Response abläuft

Dann kannst Du doch den ReadTimeout vom Serialport benutzen - einfach nur "Read" aufrufen und schauen, ob danach Deine Daten komplett sind oder eben eine TimeoutException ausgelöst wurde. Natürlich ohne DataReceived-Event.
Edit: Ggf. musst Du Deine Daten auch "sammeln". Es kann ja sein, dass 6 Bytes in "Häppchen" von 4 und 2 Bytes (oder anders) ankommen.

Hast Du Deine Kommunikation auch schon mal mit einem SerialPort-Sniffer überprüft?

02.10.2012 - 16:12 Uhr

Zurück zum Anfang: Ist denn der Service korrekt installiert? Du verwendest "MailGeneratorService" und "MailGeneratorServiceDebug". Ist das richtig? Sind die Pfade in der Registry richtig?

02.10.2012 - 14:13 Uhr

Hallo,

ich meinte, ob bspw. "Service started" in Deinen Logs auftaucht. Du kannst Dein Logging zur Ablaufverfolgung erweitern, um herauszubekommen, was der Dienst tut und was nicht.

02.10.2012 - 13:14 Uhr

Hallo,

was steht denn in Deinen Logs? Evtl. solltest Du das Logging ausweiten.

27.09.2012 - 09:57 Uhr

In meinem WPF Projekt kann ich zwar "Dispatcher" aufrufen aber er finden kein CheckAccess, an was kann das liegen?

Was heißt das? Compilermeldung? IntelliSense? Falls letzteres - das ist wohl von Microsoft so gewollt, tut der Funktionalität aber keinen Abbruch.

24.09.2012 - 09:24 Uhr

Hallo,

ergänzend bliebe leider noch zu sagen, dass auch mit C# die Wahl der GUI-Technologie nicht ganz so einfach ist.

Windows Forms wird schon länger nicht mehr weiter entwickelt. Zu WPF, und mehr noch Silverlight, gibt es keinerlei Aussagen über die Zukunft, sondern es wird eher vermutet, dass es damit auch nicht mehr weit her ist. Und WinRT - nun, wieder mal viel Hype um nichts? Wäre jedenfalls nicht das erste Mal. Zudem ist WinRT auch arg begrenzt in der Anwendung.

Natürlich funktionieren damit entwickelte Programme sicher auch noch länger, aber inwiefern es Weiterentwicklung oder wenigstens Fehlerkorrekturen geben wird, steht in den Sternen.

21.09.2012 - 16:48 Uhr

Warum gehst Du eigentlich nicht selbst mit einem guten Beispiel voran?

Macht er doch - oder warum meinst Du, seine Einstellung kritisieren zu müssen?