Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von SlyFox
Thema: Position berechnen: Fahrzeug mit gleicher Geschwindigkeit durch eine Kurve fahren lassen
Am im Forum: Grafik und Sound

Hallo malignate,

super, ich glaube, so wird es funktionieren.

Danke schön.

Christoph

Thema: Position berechnen: Fahrzeug mit gleicher Geschwindigkeit durch eine Kurve fahren lassen
Am im Forum: Grafik und Sound

Hallo,

ich möchte eine Simulation programmieren. Darauf fahren Fahrzeuge auf vorgefertigten Routen. Natürlich fahren sie dabei auch um Kurven. Allerdings weiß ich nicht, wie ich die Bewegung realistisch darstellen kann, damit das Fahrzeug mit gleicher Geschwindigkeit von der Geraden kommend durch die Kurve fährt.

Die Kurve zeichne ich mit Graphics.DrawEllipse wobei es ok ist, wenn die beiden Radien identisch sind (falls das die Lösung vereinfacht).

Vielen Dank für eure Unterstützung

Christoph

Thema: FileSystemWatcher - Löschen von Dateien verhinderbar?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo witte,

dummerweise muss unser ERP System (nicht SAP) auf alle vorhandenen Versionen der Dateien zugreifen können, sofern vorhanden. Das ERP-System umzuschreiben, damit es auch in anderen Ordnern nach Dateien sucht, ist garantiert teurer, als ein Work-Around.

Ich bin auch nicht glücklich über diese Lösung.

Viele Grüße

Christoph

Thema: FileSystemWatcher - Löschen von Dateien verhinderbar?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo malignate,

mehr als 5.000 EUR für so eine Lösung auszugeben ist etwas übertrieben.

Wenn es keine bessere Lösung gibt, werde ich alle Dateien noch einmal in einen Backup-Ordner auf dem Server speichern. Wenn eine Datei versehentlich gelöscht wurde, kann ich sie sofort wieder aus dem Backup-Ordner wiederherstellen (automatisch per FileSystemWatcher).

Viele Grüße

Christoph

Thema: FileSystemWatcher - Löschen von Dateien verhinderbar?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo pdelvo,

danke für die Idee. Es sind aber Dateien im 5-stelligen Bereich, nicht nur einzelne.

Ansonsten wäre deine Idee natürlich super geeignet!

Wenn keiner eine bessere Lösung hat, werde ich es jetzt anders lösen:

Die Benutzer bekommen auf den Ordner nur Leserechte, die auf die neu erstellten Dateien vererbt werden. Wird eine neue Datei erstellt, wird ein Event gefeuert, das ich abfange und die Rechte an der älteren Version dieser Datei ändere, sodass die ältere Version löschbar ist.

Viele Grüße

Christoph

Thema: FileSystemWatcher - Löschen von Dateien verhinderbar?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke :-(

Thema: FileSystemWatcher - Löschen von Dateien verhinderbar?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Abt,

gibt es kein Event wie z. B. BeforeFileDeletion(..., bool Cancel)?

Viele Grüße

Christoph

Thema: FileSystemWatcher - Löschen von Dateien verhinderbar?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich möchte mit einem FileSystemWatcher ein Verzeichnis überwachen.

Wenn ein Benutzer versucht eine Datei zu löschen, möchte ich prüfen, ob dies zum gegenwärtigen Zeitpunkt erlaubt ist und ggf. das Löschen verhindern.

Das Löschen ist dann erlaubt, wenn es eine neuere Version dieser Datei gibt.

Beispiel: dateiname-001.txt darf gelöscht werden, wenn es eine dateiname-002.txt (oder höher) gibt

Löschanfragen kommen selten vor, es gibt also mit der Überwachung keine Probleme.

Kann man das mit FileSystemWatcher realisieren bzw. kann man das Löschen überhaupt irgendwie verhindern? Die Berechtigung für die Dateien auf Betriebssystem-Ebene zu ändern, halte ich für zu aufwändig, da ständig neue Dateien für diesen Ordner erstellt werden.

Vielen Dank für eure Unterstützung

Christoph

Thema: Im Thread geänderte Variable weiterverarbeiten: Wie über die Änderung informieren?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich dachte, dass der Timer für so was oversized wäre. Eigentlich benutzt man ihn doch für regelmäßig wiederkehrende Aktionen.

Ok, dann benutze ich einen Timer.

Viele Grüße

Christoph

Thema: Im Thread geänderte Variable weiterverarbeiten: Wie über die Änderung informieren?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

bist du sicher?

- cpuCounter.NextValue() ausführen
- Timer aktivieren (1000 ms)
- im Timer wieder cpuCounter.NextValue() ausführen
- Timer deaktivieren

Meinst du das so?

Viele Grüße

Christoph

//Edit: Tippfehler

Thema: Im Thread geänderte Variable weiterverarbeiten: Wie über die Änderung informieren?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich glaube, das wird mir jetzt zu kompliziert.

Hier der Code, der im Thread ausgeführt wird:

                cpuCounter.NextValue();
                Thread.Sleep(1000);
                load = cpuCounter.NextValue();

cpuCounter ist ein System.Diagnostics.PerformanceCounter und gibt mir die CPU-Auslastung zurück.

load ist eine Variable vom Typ float.

Schöne Grüße

Christoph

Thema: Im Thread geänderte Variable weiterverarbeiten: Wie über die Änderung informieren?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

@herbivore: Dann versuche ich das mittels Event, danke.

@Sebastian: Es gibt gar keine Fehlermeldung. Es ging mir nur um eine Bestätigung oder Widerlegung meiner Theorie, dass mein oberer Quellcode so nicht funktioniert.

Viele Grüße

Christoph

Thema: Im Thread geänderte Variable weiterverarbeiten: Wie über die Änderung informieren?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich möchte innerhalb eines Threads eine Variable verändern und anschließend außerhalb des Threads weiter verarbeiten.

Wie bekomme ich mit, dass die Variable geändert wurde? Löse ich dazu im Thread ein Event aus oder gibt es eine bessere Lösung?

ursprünglich wollte ich das ganze mit

new Thread(new ThreadStart(delegate{...}));

lösen, aber das scheint nicht zu funktionieren.

Jetzt erstelle ich eine Instanz von Thread und rufe dann Start() und Join() auf. Aber irgendwie kommt mir das nicht richtig vor.

Thread thread = new Thread(new ThreadStart(delegate{...}));
thread.Start();
thread.Join(); // Warten auf Beenden des Threads

Vielen Dank für euren Denkanstoß

Christoph

Thema: Umsetzungsidee für Statusübermittlung
Am im Forum: Netzwerktechnologien

Hallo,

ich würde mir eine Struct aufbauen.

- Host
(- Maximale Verbindungsversuche)
- aktuelle Verbindungsversuche

Dann erstellt du ein Array dieser Struct für deine Server.

Du durchläufst das Array und versuchst eine Verindung aufzubauen. Klappt es, stellst du die aktuellen Verbindungsversuche auf 0. Klappt es nicht, erhöhst du Verbindungsversuche um 1. Hast du die Anzahl der maximalen Verbindungsversuche erreicht (bzw. waren es 3), dann kommt die Fehlermeldung.

Viele Grüße

Christoph

Thema: FileStream.Read bei instabilem Netzwerk [Gelöst]
Am im Forum: Netzwerktechnologien

Hallo,

ich habe einen kleinen Denkfehler begangen.

Ich muss ja nur das Lesen wieder neu starten. Es betrifft das Schreiben nicht, weil lokal geschrieben wird. Lediglich die Quelldatei liegt im WAN.

Danke für die Hilfe

Christoph

Thema: FileStream.Read bei instabilem Netzwerk [Gelöst]
Am im Forum: Netzwerktechnologien

Hallo T-Virus,

ich habe noch nie mit Seek gearbeitet.

Das bedeutet, ich benutze nach dem Öffnen der zu lesenden und der zu schreibenden Datei jeweils Seek und mache dann weiter wie zuvor?

Viele Grüße

Christoph

Thema: FileStream.Read bei instabilem Netzwerk [Gelöst]
Am im Forum: Netzwerktechnologien

Hallo,

ich versuche eine ca. 13 GB große Datei mittels FileStream.Read über eine instablile und sehr langsame (1 Mbit) WAN-Verbindung zu kopieren.

Nach einiger Zeit (kann nach Minuten oder auch Stunden sein) bekomme ich die Exception, dass diese Netzwerkverbindung nicht mehr existieren würde.

Starte ich das Programm anschließend neu, funktioniert die Verbindung wieder.

Wie kann ich vermeiden, dass das Programm abbricht, wenn die Verbindung verloren geht? Einen Timeout kann ich leider nicht einstellen.

Vielen Dank für eure Hilfe

Christoph

Thema: Thread mit Parameter(übergabe) starten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich habe ein DataGridView, in dem meine Server aufgelistet sind und angezeigt wird, welche der überwachten TCP-Ports erreichbar sind. Dieses DataGridView wird periodisch mittels Timer aktualisiert.

Wenn ich die Aktualisierung nacheinander durchlaufen lasse, dauert ein Lauf ca. 12 Sekunden. Bei einer Aktualisierung pro Minute, finde ich das eine ziemlich lange Zeit, da ein nicht erreichbarer Server für eine lange Wartezeit sorgt, da ich auf ein Time-Out warten muss.

Jetzt war meine Idee, alle Server parallel abzufragen. Dazu habe ich eine Methode geschrieben:

private void ScanPorts(int row)
{
  // Do sth
}

Mittels System.Threading.Thread wollte ich nun in einer Schleife, die Zeilen des DataGridView hochzählen und für jede Zeile einen neuen Thread aufrufen. Leider weiß ich aber nicht, wie ich einen Thread aufrufen kann, wenn die Methode einen Parameter (int row) enthält.

Wer kann mir bitte auf die Sprünge helfen?

Viele Grüße

Christoph

Thema: DGV aus Datei füllen, ohne dass das GUI blockiert
Am im Forum: GUI: Windows-Forms

Hallo,

ich gebe zu, mich noch nie mit Multithreading beschäftigt zu haben, da es bisher nicht notwendig war.

Jetzt ist es aber notwendig.

Ich habe eine knapp 100 MB große Textdatei, mit etwas mehr als 1,2 Millionen Zeilen.

Ich lese die Daten zeilenweise ein, da ich prüfen muss, ob die Zeile überhaupt verarbeitet werden soll.

Die Ausgabe der benötigten Zeilen erfolgt dann in ein DataGridView.

Wenn ich das ohne Multithreading mache, "friert" das Fenster ein, bis die Verarbeitung abgeschlossen ist.

Jetzt meine Frage: mit welcher Art von Multithreading kann ich

- die Daten zeilenweise aus der Datei lesen und vearbeiten
- sie in das DataGridView schreiben

ohne dass mir die einzelnen Threads das DGV zerschießen? Die Ausgabe muss in der Reihenfolge wie in der Textdatei sein.

Vielen Dank für eure Hilfe

Christoph
P.S.: Ich habe mich zu dem Thema schon mal ein wenig eingelesen, aber irgendwie hat mir folgender Text nicht wirklich weiter geholfen: Multithreading in C#

Thema: Abprüfen mehrerer Bedinungen in einzelnen Threads?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich habe eine Funktion, die einen String auf bestimmte Zeichenfolgen prüft. Wenn eine dieser Bedinungen zutrifft, soll true zurück geliefert werden. Wenn keine Bedinungung zutrifft, dann false.

//Edit: true und false verwechselt

Macht es Sinn, die einzelnen Bedinungen parallel in Threads aufzuteilen, um die Performance zu steigern?

Hier der verkürzte Beispielcode:


        private bool Filtered(string s)
        {
            if (s.StartsWith("Closed session for "))
            {
                return true;
            }
            if (s.StartsWith("Opened session for "))
            {
                return true;
            }
            if (s.StartsWith("Starting replication with server "))
            {
                return true;
            }
            if (s.StartsWith("Finished replication with server "))
            {
                return true;
            }
            if ((s.StartsWith("Router: Transferred ")) && (s.Contains(" messages to ")))
            {
                return true;
            }
            return false;
        }

Vielen Dank für eure Hilfe

Christoph

Thema: Berechnung der CPU-Zeit eines Code-Abschnitts
Am im Forum: Rund um die Programmierung

Hallo,

ich möchte gerne wissen, wie viel CPU-Zeit ein Programmteil benötigt. Es handelt sich um eine Programmschleife, die sehr oft durchlaufen wird.

Ich würde gerne verschiedene Varianten ausprobieren, um dann die schnellste zu nutzen.

Zu DOS-Zeiten habe ich dazu einfach zweimal System-Zeit ausgelesen, das war einfach. Mit Windows und Multi-Tasking ist das jedoch viel komplizierter geworden.

Was ich gefunden habe, ist System.Diagnostics.PerformanceCounter. Leider habe ich aber nur Beispiele gefunden, bei denen man die aktuelle CPU-Auslastung ermitteln konnte, was mich aber nicht weiter bringt.

Ich möchte gerne wissen, wie viele Sekunden mein Programm die CPU auslastet (auf 100 % umgerechnet). Wenn mein Programm also 5 Sekunden lang die CPU zu 20 % auslastet, soll das Ergebnis 1 Sekunde sein.

Gibt es dafür eine Methode?

Vielen Dank für eure Unterstützung und frohes neues Jahr

Christoph

Thema: TreeView.Contains: prüfen, ob ein Knoten gleichen Namens schon vorhanden ist
Am im Forum: GUI: Windows-Forms

Hallo,

ich möchte einem TreeView-Steuerelement einen Knoten hinzufügen (oberste Ebene), wenn dieser noch nicht vorhanden ist (Vermeidung von Dubletten).

Dazu habe ich folgenden Code geschrieben:

    public static void AddNode(TreeView tv, string text)
    {
      TreeNode tn = new TreeNode(text); // Neuen Knoten erzeugen
      if (!tv.Nodes.Contains(tn)) // Prüfen, ob Knoten noch nicht vorhanden ist
      {
        tv.Nodes.Add(tn); //Falls nicht vorhanden: anhängen
      }
    }

Wenn ich jetzt Knoten mit gleichem Namen hinzu fügen möchte, dann klappt das, aber ich weiß nicht, warum.

Wer kann mir da einen Tipp geben, was ich falsch mache?

Christoph

Thema: C# 2012 - Kann keine ExtensionMethods erstellen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

sorry, aber wo finde ich System.Core?

Vielen Dank

Christoph

Thema: C# 2012 - Kann keine ExtensionMethods erstellen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo unconnected,

leider ist es .NET Framework 4.5. :-(

Hat sonst noch jemand eine Idee, woran es liegen kann? Muss ich einen Verweis oder ein Using verwenden?

//Edit: Dass mit dem System.Core hatte ich überlesen, werde ich nachher mal ausprobieren.

Viele Grüße aus Köln

Christoph

Thema: C# 2012 - Kann keine ExtensionMethods erstellen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

ich möchte gerne eine Erweiterungsmethode programmieren, bekomme in C# 2012 Prof. immer diese Fehlermeldung angezeigt:

Fehler
Es kann keine neue Erweiterungsmethode definiert werden, weil der für den Compiler erforderliche Typ 'System.Runtime.CompilerServices.ExtensionAttribute' nicht gefunden werden kann. Fehlt ein Verweis?

Hier der Quellcode:

  public static class RichtextBoxExtensions
  {
    public static void AppendText(this System.Windows.Forms.RichTextBox rtb, string text, System.Drawing.Color color)
    {
      rtb.AppendText("asdf");
    }
  }

In C# 2008 Express funktioniert das wunderbar. Kann es daran liegen, dass ich mehrere Versionen von C# auf dem Computer installiert habe? C# 2012 ist frisch installiert und ich habe an der Konfiguration noch nichts geändert, ist alles noch Default.

Vielen Dank für eure Hilfe.

Christoph

Thema: Feststellen, dass das Fenster auf einen anderen Bildschirm verschoben wurde
Am im Forum: GUI: Windows-Forms

Hallo,

wie kann ich feststellen, dass ein Fenster auf einen anderen Bildschirm verschoben worden ist?

Hintergrund ist, dass ich dann ja ggf. die Fenstergröße an die geänderte Bildschirmauflösung anpassen muss.

Vielen Dank für eure Hilfe

Christoph

Thema: Auslesen von GDI+ Informationen aus TTF (True Type Fonts)
Am im Forum: Grafik und Sound

Hallo,

erst mal ganz vielen Dank für eure Beiträge.

Allerdings gab es da ein kleines Missverständnis:

Die Reihenfolge in der die Striche (Strokes) auf Papier gezeichnet werden müssen, ist mir bekannt. Ich möchte dies in dem Bild auf dem Computer farblich darstellen. Ich muss lediglich die Kurven zu den einzelnen Strichen kennen, damit ich genau diesen Bereich farbig füllen kann. Jeder Strich muss demnach als geschlossenes Kurve vorliegen.

Wenn das nicht gewährleistet ist, muss ich mich nach einer anderen Lösung umschauen.

Vielen Dank für eure Hilfe

Christoph
(Kefu)

Thema: Auslesen von GDI+ Informationen aus TTF (True Type Fonts)
Am im Forum: Grafik und Sound

Hallo,

ich habe gelesen, dass TTF (True Type Fonts) nichts anderes wären als komprimierte GDI+ Informationen.

Kann man diese mit C# auslesen, um sie dann selbst zu zeichnen?

Hintergrund ist ein Programm, mit dem ich chinesische Schriftzeichen zeichnen möchte. Dabei möchte ich nacheinander und in korrekter Schreibreihenfolge die Striche zeichnen, wobei jeder Strich eine andere Farbe erhalten soll.

Vielen Dank für eure Unterstützung

Christoph

Thema: Anwendung soll hinter den Desktop Icons liegen
Am im Forum: GUI: Windows-Forms

Hallo,

ist es in C# möglich eine Anwendung hinter die Desktop Icons zu legen? Also sozusagen zwischen Hintergrundbild und Icons?

Vielen Dank für eure Hilfe

Christoph

Thema: [erledigt] XP - Windows Explorer modifizieren - nur bestimmte Ordner / Dateien anzeigen
Am im Forum: Rund um die Programmierung

Hallo herbivore,

vielen herzlichen Dank für die ausführliche Antwort. Ja, du hast Recht: es gibt zu viele Schlupflöcher, die man gar nicht alle stopfen kann. Wir werden die Lösung mit den Unterordnern umsetzen.

Dennoch danke für den Tipp mit den ShellExtensions. Das kann man sicherlich trotzdem noch mal gut gebrauchen.

Viele Grüße

Christoph