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 Console32
Thema: Dispatcher Invoke langsam
Am im Forum: GUI: WPF und XAML

Warum setzt du überhaupt die Priority vom Dispatcher, bzw ich kenn mich mit WPF nicht aus aber was hat das für einen Sinn?
Du solltest auch nicht bei jedem Element ein Label neu zeichnen lassen, vl alle 50 Elemente. Oder du verwendest einen Timer der alle x Millisekunden den aktuellen status anzeigt.


                this.myData.Add(currentItem);
                if (this.myData.Count % 50 == 0)
                    this.BeginInvoke(new Action(() =>
                        {
                            this.myResultCounterLabel.Content = this.myData.Count + " / " + this.count;
                        }));

Thema: Multithreading, aber richtig?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Da man deinen aufbau nicht kennt kann dir wahrscheinlich niemand sagen ob es mit 4.5 besser geht. Grundsätzlich gibt es mit 4.5 ein paar neue Synchronisations Features. Async and await

Ob und wie Sinnvoll diese für dein Problem sind kann ich leider nicht sagen, aber grundsätzlich kann man das ganze bestimmt auch ohne .Net 4.5 sauber lösen.

btw..
Ich bin normal Rechtschreibfreak aber der Threadtitel sollte stimmen. Multithreading mit a und nur einem d

Thema: selbes toolTips für alle ChildControls eines ContainerControls(Panel)
Am im Forum: GUI: Windows-Forms

Hallo Community,

Ich habe ein kleines Problem beim setzten eines Tooltips für ein ContainerControl(Panel)

Das Panel enthält ein Icon und zwei Textfelder, nichts aufregendes also.
Wenn ich jetzt den ToolTip auf das Panel setzte erscheint dieser nur wenn ich nicht über Icon / Textbox bin.

Wenn ich für alle Controls des Panels ebenfalls einen ToolTip setzte wird dieser immer angezeigt egal über welchem Control er gerade ist. Jedoch verschwindet er wenn ich das Control (im Panel) wechsle , und genau das will ich nicht.

Gibt es eine Möglichkeit den ToolTip für das Panel anzuzeigen unabhängig von dem Control im Panel über dem die Maus gerade steht?.

Thema: Random-Generator mit SetSeed und GetSeed?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von Alan
Richtig, das ginge. Allerdings gibt es nicht nur einen solchen "Teilungspunkt", sondern viele - so ein Spielzug besteht aus einer Serie von Aktionen. Jede dieser Aktionen ermöglicht eine gewisse Menge von Folgeaktionen, sodass eine Baumstruktur entsteht. Jeder dieser Baumknoten bräuchte dann seine eigene Instanz des Random-Generators. Möglich, aber ineffizient, vor allem bei vielen (1000 - 10000) Knoten.

Warum kann der Gesamte Baum nicht mit einem Random Generator aufgebaut werden? (Bzw 2 wenn du einen Preview und einen Spielzug haben willst, oder einer Queue anstelle des 2ten.)

Ich kann mir auch nicht vorstellen das 1000-10000 Random Objekte ein Problem sind,
Selbst wenn eine Instanz 1kbyte Speicher braucht (was sie nicht tut) wären das nur 20Mb wenn du jeden doppelt hast.

Thema: Random-Generator mit SetSeed und GetSeed?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Du kannst dir einfach zwei Random-Generatoren mit dem Selben Seed erstellen somit sind die Ergebnisse des "vorraus schauens" die gleichen wie im Spielzug selbst.

Thema: TextBox Leave Event nicht in Verbindung mit ToolStrip
Am im Forum: GUI: Windows-Forms

Du kannst auch den Fokus bei jedem ToolStripItem einfach auf ein Panel oder was auch immer (ein Control das eben den Fokus erhalten kann) setzten dann wird das Leave automatisch ausgeführt.

Thema: [gelöst] String To Double: '.' und ',' als NumberDecimalSeperator erlauben
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von vbprogger
... und bitte auch darauf achten, dass sowas wie Tausend-Trenner auch existieren, z.B.

Deutsch: 1.000.111,12
US: 1,000,111.12

Bei uns gibt es keine Tausender-Trenner.
Auch soll die Ausgabe zwar nach der Aktuellen Systemeinstellung erfolgen, die Eingabe von Zahlen jedoch unabhängig von Land und Sprache immer '.' und ',' als Dezimal Trennzeichen sehen. Bitte fragt mich nicht wieso ich mache diese Anforderungen nicht.

Ich weiß auch wie man Zahlen mit '.' als dezimal Trennzeichen akzeptiert jedoch war meine Frage ob man per NumberFormatInfo beide erlauben kann, ohne das ich eine eigene Methode schreiben muss die beide Bedingungen prüft.

EDIT: Wurde ja auch schon beantwortet...

Thema: [gelöst] String To Double: '.' und ',' als NumberDecimalSeperator erlauben
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke,

OKay ;)

Thema: [gelöst] String To Double: '.' und ',' als NumberDecimalSeperator erlauben
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Community,

gibt es eine Möglichkeit beim parsen von Text beide Dezimal Trennzeichen zu erlauben (via CultureInfo oder NumberFormatInfo) ? Oder muss ich mir dazu selbst etwas Basteln?

Bei Google hab ich jetzt nichts gefunden außer hundert Posts das man das nicht machen sollte.

Thema: Fenster in separatem Thread verschieben [==> nicht das Fenster, sondern die langlaufende Aktion]
Am im Forum: GUI: Windows-Forms

Siehe:
[FAQ] Warum blockiert mein GUI? und
[FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke)

Bitte beachte in Zukunft [Hinweis] Wie poste ich richtig? Punkt 1.1.1

Thema: VS2010 Plugin, Reflector-Plugin, Resharper-Plugin oder Tool, um nicht aufgerufene Methode zu finden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Resharper- Find all unused classes

Versuchs mal nach der anleitung

Thema: VS2010 Plugin, Reflector-Plugin, Resharper-Plugin oder Tool, um nicht aufgerufene Methode zu finden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Resharper kann auch das soweit ich weiß,
Rechtsklick auf deine Solution => "Find Code Issues" dann sollte es eine punkte mit unused code geben

Thema: Anwendung neustarten bei AppCrash oder "Keine Rückmeldung"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von MalteS
Nun kann es ja durchaus mal vorkommen, dass sich die WPF Anwendung aufhängt oder abstürzt.

Ich finde den Ansatz nicht besonders benutzerfreundlich.
Ein Ordentliches und Sinngemäßes Exceptionhandling quer durch die Applikation sollte einen Großteil der Abstürze verhindern und richtig mit dem aufgetretenen Fehler umgehen.

Wenn du dich an die Microsoft Richtlinie hältst und alle Aktionen die länger als 20ms dauern in einen separaten Thread packst, wird es auch so gut wie niemals dazu kommen das dein GUI Thread sich aufhängt. Somit tretten viele dieser aufhänger nicht im GUI Thread auf und du kannst nicht überprüfen ob die Applikation noch reagiert.

Gegen Deadlocks, Endlosschleifen und Race-Conditions hilft nur ausgiebiges Testen und eine gut durchdachte Synchronisation zwischen Threads usw..

Du kannst natürlich für den WorstCase über die Main methode einen TryCatch block packen der alles auffängt was nicht bedacht wurde, und an dieser stelle die Application neu starten. Jedoch sollte das nicht die Regel sein.

BTW Ich kenne den Einstigspunkt bei WPF nicht wird sich von WinForms unterscheiden.

Thema: FIR-Filter (finite impulse response filter) aus Array mit Signalwerten berechnen
Am im Forum: Grafik und Sound

Ich kenne den FIR Filter anders, aber gut so wie es auf deinem Bild aussieht kannst du das ganze vereinfachen wenn du die Mittlere Linie Quasi hinten anhängst.

Formelmäßig bedeutet das das du die Koeffizienten in verkehrter Reihenfolge hinten anhängst (bis auf den letzten Koeffizienten)
dann bist du bei einem ganz normalen FIR (so wie auch auf Wikipedia beschreiben für den der Algorythmus wie folgt funktioniert:


             for (int i = 0; i < b_fir.Length; i++)
            {
                for(int y = i; y ≥ 0; y--)
                {
                    result[i] += input[y] * b_fir[i - y];
                }
            }

Ich hoffe ich habe keinen Denkfehler beim vereinfachen

EDIT: Ich bin mal davon ausgegangen das es nur soviel Eingangswerte gibt wie es Koeffizienten gibt die formal kann jedoch leicht auf mehr Eingangswerte geändert werden.

Thema: (Konsolen-)Anwendung wird beendet, obwohl noch asynchrone Aufgaben laufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Da ich nichts anderes sehe gehe ich davon aus das du die Methode im MainThread aufrufst.

Warum sollte dieser warten wenn er mit allem fertig ist, wenn du ihm nicht sagst auf was er warten soll.

Du kannst den MainThread mithilfe eines ManualResetEvents anhalten bis dein FileComplete event 10000 aufgetreten ist.

Thema: Ort zu Postleitzahl ermitteln
Am im Forum: Rund um die Programmierung

Hallo duploNation,

wie schon in der PM Geschrieben handelt es sich hierbei um Grundlagen bitte beachte in Zukunft: [Hinweis] Wie poste ich richtig? Punkt 1.1.1 und 2.1

Es gibt sehr viele Möglichkeiten eine Datenbank an C# anzubinden.
Eine davon ist mit MySqlConnection und einem MySqlDataReader die einzellnen Einträge auszulesen und diese einem Dictionary<int,string> hinzuzufügen.

Wie du diese dinge auf einer TextBox anzeigst ist ein total grundlegendes Problem.
Wie ich schon per PN geschrieben habe solltest du dich in die Grundlagen einlesen.

Ressourcen für Grundlagen gibt es Genug (siehe auch link Oben)
Auch Google spuckt bei MySql + C# / MySqlConnection / MySqlDataReader einiges aus.

Thema: Debugger springt bei Exception in WPF-Anwendung nicht zum Fehler
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich denke das liegt daran das der Konstruktor deiner Klasse über den Xaml Parser aufgerufen wird. Dieser enthält einen catch block und wirft dann eine neue Exception mit deiner Exception als InnerException deswegen ist die Quelle nicht verfügbar.

EDIT: Ist aber ungewöhnlich Code in dem Window Konstruktor zu packen.
bzw auch Exceptions bei Parameterlosen Konstruktoren finde ich nicht sinnvoll (MMN)

Thema: Debugger springt bei Exception in WPF-Anwendung nicht zum Fehler
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Deine erste Exception kommt nicht von der Fehlerverursachenden Methode sondern dein Xaml des Mainwindows ist fehlerhaft...

Thema: Stored Procedure liefert keine Sätze zurück
Am im Forum: Datentechnologien

die verwendete Add methode der ParameterCollection ist als Obsolete gekennzeichnet.

[ObsoleteAttribute("Add(String parameterName, Object value) has been deprecated.  Use AddWithValue(String parameterName, Object value).  http://go.microsoft.com/fwlink/?linkid=14202", 
	false)]
public SqlParameter Add(
	string parameterName,
	Object value
)

Versuch mal AddWithValue

Edit: natürlich nur die verwendete Add-Methode und nicht alle Add-Methoden...
Edit 2:


BTW:

SqlConnection sqlConnection = new SqlConnection(sqlConnectionString);
    using (sqlConnection)
    {

Kann zu einer ObjectDispose Exception führen wenn du nach dem using block auf die connection zugreifst.

using (SqlConnection sqlConnection = new SqlConnection(sqlConnectionString))

Thema: Mehrere Listen gleichzeitig sortieren
Am im Forum: Datentechnologien

static void Main()
        {
            List<Row> table = new List<Row> 
            { 
                new Row() { Addresse = "Zuhause", Age =5, Name = "Hans" }
                new Row() { Addresse = "Birkenweg 2", Age = 32, Name = "Max Musterman"}
                new Row() { Addresse = "Am See 15", Age = 15, Name = "Thomas" }
            };

            var tableByAddress = table.OrderBy(keySelector => keySelector.Addresse);
            var tableByName = table.OrderBy(keySelector => keySelector.Name);
            var tableBayAge = table.OrderBy(keySelector => keySelector.Age);

        }

        public class Row
        {
            string name;
            int age;
            string addresse;

            public string Name
            {
                get { return name; }
                set { name = value; }
            }

            public string Addresse
            {
                get { return addresse; }
                set { addresse = value; }
            }

            public int Age
            {
                get { return age; }
                set { age = value; }
            }
        }
auch eine Möglichkeit

Das sind jedoch Grundlagen die hier im Forum vorausgesetzt werde, bitte beachte:
[Hinweis] Wie poste ich richtig? Punkt 1.1.1

Thema: Der Prozess kann nicht auf die Datei x zugreifen, weil ... [==> File.Create öffnet die Datei schon]
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

BTW:

Das close ist überflüssig und wird im sr.Dispose() / durch das using aufgerufen.

Die Dispose methode von StreamReader:


protected override void Dispose(bool disposing)
{
	try
	{
		if (this.Closable && disposing && this.stream != null)
		{
			this.stream.Close();
		}
	}
	finally
	{
		....
	}
}

Thema: Mehrere Klassen mit gleichem Namen in einer Assembly - Wie richtig programmieren?
Am im Forum: Rund um die Programmierung

Mir ist noch immer nicht klar warum es zwei Klassen mit dem namen Person geben soll, du versuchst das gleiche Ding mit verschiedenen Klassen zu beschreiben ohne das diese in irgendeiner Vererbungshierarchie definiert sind.

Leider kann man mit dem Beispiel nicht wirklich sehen was für Architektur du aufbauen willst.
So wie du geschrieben hast klingt es als würdest du eine alte Klasse neu schreiben weil sie nicht mehr so wie früher verwendet werden kann. Ich würde davon abraten mehrere Personenklassen ohne eine Relation zueinander zu haben da es nicht möglich ist zu sehen warum sich diese Unterscheiden.Vor allem gibt der Namespace keine Information darüber was sich geändert hat oder wo welche Person zum Einsatz kommen soll.

Ich würde generell noch einmal überdenken ob es nicht eine sinnvollere Möglichkeit gibt die Daten zu Organisieren.

Wenn die Namen jedoch so bleiben sollen bleibt dir sowieso nichts übrig außer mit Namspaces & Alias zu arbeiten.

Thema: Mehrere Klassen mit gleichem Namen in einer Assembly - Wie richtig programmieren?
Am im Forum: Rund um die Programmierung

Du solltest die Klassen eindeutig benennen wenn Mutter und Vater nicht von der Selben Person Klasse sein können, sollte diese nicht Person heißen:

Versuche deinen Klassen eindeutige Namen zu geben die deren zweck und Daten richtig beschreiben. Falls es doch noch vorkommt das Klassen den Gleichen namen Tragen kannst du sie in unterschiedliche Namespaces legen. Und mit einem Alias ansprechen um das ganze noch übersichtlich zu halten. (siehe vorpost)

Ich denke das dein Code hier nur ein Beispiel ist (bitte korrigiere mich wenn nicht) somit kann ich dir kein konkretes Beispiel geben wie man es anders machen könnte.

Thema: Ein Objekt für mehrere Forms: Wenn eine Form geschlossen wird, verschwindet das Objekt
Am im Forum: Rund um die Programmierung

Das ist eine sehr magere Lösung für dein Problem.

Die Statische variable wird bestimmt nicht null nur weil du irgendwo ein Fenster schließt. Dein Problem lag definitiv wo anderes. Ich vermute mal du verwendest eine Variable deines Geschlossenen Fensters weiter.

Falls du doch die Globale Variable auf null setzt, kannst du diese mit readonly:

public  static readonly HFI_Appl myApplication = new HFI_Appl();
vor einer Neuzuweisung "schützen".

OT:
Eine vernünftige Namensgebung macht das Lesen für alle leichter ;)

Thema: Kommunikation über serielle Schnittstelle: Wie werden Unterbrechungen (z.B. Kabel gezogen) behandelt
Am im Forum: Rund um die Programmierung

Das kommt auf das Protokoll / den Handshake an.

Bei mir funktioniert es grundsätzlich den Stecker zu ziehen und wieder anzustecken.
Jedoch musst du die Kommunikation des Messgerätes und deines Programms auch dafür auslegen solche Fehler (Timouts & fehlerhafte Pakete) zu Ignorieren, was bei mir nicht so ist. Wird ein fehlerhaftes Paket nicht mehr Quittiert trennt (in meinem Fall) die Steuerung die Verbindung. Dh. Das ausstecken würde nur funktioniert wenn die Verbindung gerade inaktiv ist. Deswegen trenne ich die Verbindung Immer wenn ein Timeout auftritt.

Thema: eigene PictureBox wird nur aktualisiert, wenn man dies durch Hinauschieben des Fensters erzwingt
Am im Forum: Grafik und Sound

Hallo herbivore,

das ist natürlich Richtig, war ein Problem der PictureBox.
Besser gesagt meiner PictureBox (Ist mir leider zu spät aufgefallen), Ich verwende jetzt wieder die .Net PictureBox. Diese Zeichnet sich auch Richtig.

Die Transparenz funktioniert weil das UserControl ein ContainerControl ist, und sich nur ein Teil (besser gesagt der Teil auf dem keine Controls liegen müssen) des UserControls ständig neu Zeichnet.

Thema: eigene PictureBox wird nur aktualisiert, wenn man dies durch Hinauschieben des Fensters erzwingt
Am im Forum: Grafik und Sound

Hallo Community,

Ich habe ein Control das viel selber zeichnet,
Alles im OnPaint und per Invalidate bei Property änderung.

Nun habe ich das Problem das vor diesem Control eine PictureBox ist welche ein Fadenkreuz enthält, leider verschwindet dieses nach starten des Fensters, und ist erst sichtbar wenn ich das Fenster aus dem Desktop schiebe / das form sich neu zeichnet...

Ich dachte bis jetzt das ich im OnPaint nicht darauf achten muss ob andere Controls den Bereich überdecken?

Thema: Application.UseWaitCursor = false; zeigt keine wirkung bis man die Maus bewegt
Am im Forum: GUI: Windows-Forms

Also das aktivieren erfolgt in einem Button_Click Handler, und das deaktivieren erfolgt in dem Event meines BackgroundWorkers (per Invoke)
somit sind beide aufrufe im GUI-Thread welcher danach weder Blockiert wird noch sonst irgend etwas macht da ich ja nicht einmal die Maus bewege

Ich habe auch niemals gesagt das ich DoEvents verwende, auch wenn es indirekt durch das ShowDialog aufgerufen wird (wobei ich die Anforderung das wir Steinzeitliche Modale Fenster verwenden nicht ändern kann).

Wenn es am DoEvents der ShowDialog Methode liegt, kann ich das auch nicht ändern. (Dann ist es meiner Meinung nach immer noch ein Bug, weil nirgendwo steht das UseWaitCursor mit Modalen Fenstern nicht richtig funktioniert)

Edit es heißt natürlich ShowDialog..

Thema: Application.UseWaitCursor = false; zeigt keine wirkung bis man die Maus bewegt
Am im Forum: GUI: Windows-Forms

Ja die Neuzuweisung der Position bringt das gewünschte Ergebnis,
Ich denke mal das es sich dabei um einen kleinen Bug im Framework handelt oder?

Kann mir nicht vorstellen das es irgendwo gewünscht ist auf eine Mausbewegung zu warten.

Thema: Application.UseWaitCursor = false; zeigt keine wirkung bis man die Maus bewegt
Am im Forum: GUI: Windows-Forms

Hallo Community,

ich habe ein Problem in einem Form.
Nach dem drücken eines Buttons läuft eine (möglicherweise) sehr aufwändige Aktion im Hintergrund ab. Beim Drücken setzte ich Application.UseWaitCursor auf true.

Nach dessen Finished / EncounterdError Event setzte ich diese wieder zurück,
nur leider übernimmt dieser die Aktion nicht bis ich die Maus bewege.
Der WaitCursor bleibt..

An andere stelle im Programm verwende ich UseWaitCursor sehr ähnlich (gleichen Events meiner WorkerKlasse) dort funktioniert es einwandfrei.

Muss ich irgend etwas machen damit sich der Cursor neu zeichnet /
kennt jemand das Problem?