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 weismat
Thema: ApplicationException nach einem Click
Am im Forum: GUI: WPF und XAML

Wie mache ich das denn?


    public partial class App : Application
    {
        private static readonly log4net.ILog Logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        private void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
        {
            Logger.Fatal(e.Exception);
            e.Handled = true;
        }
    }
funktioniert nicht....Ich habe bisher keine App Klasse gehabt und habe mich nur um das MainWindow gekümmert.

Thema: ApplicationException nach einem Click
Am im Forum: GUI: WPF und XAML

Ich habe das Problem, dass ich seit heute auf einer Maschine mit meiner WPF Applikation bei einem bestimmten Click immer einen Crash habe.
Auf anderen Maschinen läuft es und den Crash gab es gestern mit dem gleichen Code auf besagter Maschine auch nicht.
Der Stack-Trace im Event Log ist auch nicht aufschlussreich.

Fehler
<Data>Application: xxx.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.ApplicationException at DynamicClass.ExceptionHelper(System.Object) at System.Threading.ThreadHelper.ThreadStart_Context(System.Object) at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at System.Threading.ThreadHelper.ThreadStart(System.Object)

Mit viel Logging sehe ich auch nicht viel - hat jemand von Euch eine Idee, was ich machen sollte?

Thema: Wie übersetze ich einen Pointer of Pointer (C++) in C#?
Am im Forum: Rund um die Programmierung

2 Tips noch:
1. In C# gibt es genauso wie in C++ den sizeof Operator.
Ich würde mittels zwei kleiner Testprogramme vergleichen, dass die Länge übereinstimmen. Unter Umständen gibt es noch Alignment Probleme, die Du so findest.

2.) Bei einem Callback musst Du aufpassen, dass Du mit einer statischen Variable für das Delegate im Managed Bereich arbeiten musst, damit der Callback nicht vom Garbage Collector nach dem Ende der Methode weggeräumt wird. Der Garbage Collector zählt nur Referenzen im Managed Bereich und denkt sonst, dass die Funktionsreferenz nicht mehr gebraucht wird. Das ist ein typisches Problem, was man oft erst in Produktion merkt ,wenn dann nach x Aufrufen auf einmal alles zusammenbricht.

Thema: Wie übersetze ich einen Pointer of Pointer (C++) in C#?
Am im Forum: Rund um die Programmierung

Schau Dir mal den Artikel an.
Es kommt auch ein bisschen darauf an, ob Du nur lesen oder auch schreiben musst.
Wenn Du nur lesen musst, dann würde ich einfach einen IntPtr nehmen und dann eine Funktion zum Auspacken bauen.

Thema: [erledigt] Wie übersetze ich das Feld "char szAccess[2]" aus einer C++ lib in C#?
Am im Forum: Rund um die Programmierung

Wenn Du bereit bist unsafe zu nehmen, dann würde ich

 public fixed char szAccess[2];
nehmen.
Wenn Du auf unsafe verzichten möchtest, dann würde ich


[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte szAccess[2]; 
benutzen.

Thema: Pattern um Nachrichten aus einer lib zu erhalten
Am im Forum: Rund um die Programmierung

In Java gibt es keine Delegates/Events - da musst Du dann den Observer als eigenständige Klasse implementieren und da gebe ich Deinem Freund recht, daß dort sich der Aufwand nicht immer lohnt. In C# ist das anders.

Thema: Pattern um Nachrichten aus einer lib zu erhalten
Am im Forum: Rund um die Programmierung

Die moderne Alternative zu Events sind die Reactive Extensions.
Intro To Rx ist eine tolle Webseite dazu.

Thema: Kann keine Verbindung mit Remoteserver über Proxy herstellen trotz richtiger Daten
Am im Forum: GUI: Windows-Forms

Es gibt verschiedene Arten von Proxies - siehe zum Beispiel bei Wikipedia.
SOCKS5 kannst Du z.B. nicht direkt mit WebRequest ansprechen. Finde erstmal genau Deinen Proxy Typ raus und schaue nach, ob das tatsächlich unterstützt ist.

Thema: der prozess kann nicht auf die datei zugreifen, da sie von einem anderen prozess verwendet wird.
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich habe eher das Gefühl, daß Du mit der Datei eine Art Logging machen willst.
Würde an Deiner Stelle mal anschauen, ob es nicht einfacher wäre, daß Du log4Net, NLog oder etwas anderes nimmst.

Thema: Wie prüfe ich, ob ein Wert doppelt per Random ausgewählt wurde?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

random number generator with no duplicates


HashSet<int> numbers = new HashSet<int>();
while (numbers.Count < 6) {
    numbers.Add(random.Next(1, 49));
}
ist die einfachste Lösung davon.

Thema: simples TCP Paket an Mikrocontroller senden funktioniert mit dem einen Code, mit dem anderen nicht
Am im Forum: Netzwerktechnologien

Fehlt ein Flush?
Ansonsten würde ich mir das mit WireShark anschauen.

Thema: ObservableCollection<float> im DataGrid - "Die bidirektionale Bindung erfordert Path oder XPath"
Am im Forum: GUI: WPF und XAML

Würde an sich immer eine eigene Klasse erstellen, da man nie weiss, ob nicht noch mehr Spalten kommen.
Wenn Du das nicht willst, dann musst Du mit object arbeiten, daß float wird dann mittels Boxing in eine Referent umgewandelt.

Thema: ObservableCollection<float> im DataGrid - "Die bidirektionale Bindung erfordert Path oder XPath"
Am im Forum: GUI: WPF und XAML

Ein Float ist ein Struct/Werttyp, keine Klasse/Referenz - deswegen kannst Du nicht binden.

Thema: Gibt es im C# etwas fertiges für Trenderkennung / Tendenzerkennung?
Am im Forum: Rund um die Programmierung

Erstmal solltest Du Dich mehr mit Deinen fachlichen Anforderungen beschäftigen.
MathDotNet oder Accord.NET sind ein paar ganz interessante freie Bibliotheken.

Thema: Mehrere UserControls mit jeweils verschiedenem DataContext
Am im Forum: GUI: WPF und XAML

Ich benutze gerne PropertyChanged.Fody. Die Doku findest Du unter Github.

Dann brauchst Du nur ein

[ImplementPropertyChanged]
vor die Klasse setzen und jede public Property implementiert dann INotifyPropertyChanged automatisch...

Thema: Alle managed-threads aller Prozesse auflisten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich würde mir an Deiner Stelle Aeron.NET anschauen. Das ist eine recht interessante Middleware, die auch mit Shared Memory funktioniert.

Thema: Performantes Zeichnen von sehr vielen Objekten
Am im Forum: GUI: WPF und XAML

Ich würde mir WriteableBitmapEx anschauen - ob die Bibliothek für Dich passt, musst Du selber ausprobieren - aber das gibt Dir auf jeden Fall Denkanstösse.

Thema: Amazon MWS Product API - Access denied
Am im Forum: Web-Technologien

Du kannst mit dem Fiddler auch HTTPS mitschneiden - das Vorgehen wird hier vorgestellt.

Thema: Amazon MWS Product API - Access denied
Am im Forum: Web-Technologien

Ich würde mittels Fiddler vergleichen, welche Daten via dem Scratchpad und via Deiner Applikation gesendet werden.

Thema: Cloud Diskussion
Am im Forum: Smalltalk

Ich würde an Deiner Stelle erstmal klein anfangen, indem Du Azure als Backup-Lösung einsetzt. Wenn Du vieles redundant hast, dann kannst Du da echtes Geld sparen, da Du nix mehr redundant brauchst.
Bei der Azure-Roadshow ist mir bewusst geworden, dass die hybride Cloud der beste Einstieg ist. Bei mir ist das recht einfach, weil man über Azure nun Cisco Site to Site bekommen kann.

Thema: Automatisches Ändern der hosts Datei je nach Netzwerk
Am im Forum: Smalltalk

Wie wäre es mit einem lokalen DNS Server?
Das wäre die saubere Variante?

Thema: Blackscreentest (Aforge) mit GoPro Hero 4
Am im Forum: GUI: Windows-Forms

Aforge ist schon seit mehr als 2 Jahren nicht mehr aktualisiert worden.
Ich würde mir da eher so etwas wie OpenCV via Emgu anschauen.
Vielleicht gibt es auch Möglichkeiten mit GPU/Cuda.

Thema: Snippet: Daten binär speichern und laden
Am im Forum: .NET-Komponenten und C#-Snippets

Zwei Anmerkungen dazu:

    Die Unterstützung des Binary Serializer in DotNet Core ist zur Zeit ein offenes Issue.
    Binary Serializer ist langsamer als z.B. ProtocolBuffers oder MS Bond und vor allem werden keine nicht verschiedenen Versionen unterstützt - d.h. ein zusätzliches Feld macht die Dateien unbrauchbar.
Deswegen würde ich davon die Finger lassen.

Thema: Erkennen von Client-Disconnect bei Socket-Verbindungen
Am im Forum: Netzwerktechnologien

Die saubere Lösung ist es immer eine Ping Nachricht in das Protokoll einzubauen, die der Server alle x Sekunden schickt und die der Client dann in y Sekunde beantworten muss - Firewalls kappen gerne Verbindungen bei Inaktivität und hängende Clients möchte man auch lieber abhängen.
Exceptions gibt es nur, wenn der Client sich unsauber beendet - beim Ziehen eines Netzwerkkabels zum Beispiel sieht man nix.

Thema: Datenübergabe Serialport -> eigene Datenstruktur korrekt implementieren
Am im Forum: Rund um die Programmierung

Ich würde einiges anderes machen, wenn ich Dich richtig verstanden habe.
Erstmal solltest Du nur mit einer Instanz/Singleton arbeiten, um Synchronisationsprobleme zu vermeiden, damit gleichzeitiges Senden funktioniert.
Dann würde ich mir überlegen, ob Du beim Senden das delegate oder den EventHandler mitgeben möchtest oder nicht.
Intern würde ich auf jeden Fall eine Sequenz-Nummer mitgeben, wenn es geht, so daß Du Request und Response miteinander verknüpfen kannst - auch bei der Fehlersuche hilft Dir das. Das halte ich für ein sauberes Vorgehen.

Thema: Mehrere Klassenobjekte in Main Klasse mit einer List überprüfen
Am im Forum: Grundlagen von C#

Ich habe das ganze nicht so 100 % verstanden - aber gefühlt solltest Du nicht mit Listen, sondern mit einem Dictionary arbeiten.
Die Position ist dabei der Key. Wenn Du dann Deinen Ball bewegst, dann musst Du prüfen, ob entweder der Key, der neuen Position schon vorhanden ist oder nicht. Wenn ja, dann entfernst Du den Ball und das Objekt an der Stelle des neuen Key oder wenn nicht entfernst Du nur den alten Key und fügst das Ball mit dem neuen Key wieder hinzu.

Thema: Technologiewahl für Projektportierung
Am im Forum: Datentechnologien

Kapsle alle Zugriffe auf die Datenbank in einem eigenen Service.
Würde nicht bei einem Neu-Design die WPF-App mit der Datenbank sprechen lassen.
Wenn Du performante Serialisierung wie Protocol Buffers nimmst, dann hast Du kein Performance Problem - einen schönen Benchmark findest Du hier.

Thema: Technologiewahl für Projektportierung
Am im Forum: Datentechnologien

Für das WPF Design würde ich Dir mahapps und dragablz empfehlen - das sind sehr schöne GUI Kits, um eine moderne Oberfläche zu erstellen.

Thema: WZC Seltsame Probleme !?
Am im Forum: Rund um die Programmierung

Schwer zu sagen was schief geht - an Deiner Stelle würde ich den Mischmasch zwischen nativen Strukturen und .NET/CLR Strukturen aufbrechen, so daß Du einen klaren Schnitt machen kannst.
Da es um ein GUI geht, sollte das bei der Performance nicht wehtun, aber dann hast Du eine klare Idee, wo es schiefgeht.

Thema: OpenNetCF WZC gibt immer Output/Fehler 87 zurück
Am im Forum: Rund um die Programmierung

Du musst natürlich das Free aufrufen - der klassische C# Weg ist, daß Du für die Strukturen IDisposable definierst und dann die Strukturen entsprechend freigibst, wenn das aufgerufen wird.
Structs sind Wertetypen - bei Dir benutzt Du die Properties wieder - das schafft Komplexität.

Wenn Du das machst, dann kannst Du schönen Code schreiben:


using (UnmanagedType t =new UnmanagedType()) 
{
    byte charset = t.GdiCharSet;
}
In dem Fall wird das Dispose dann mit dem Ende des Blocks automatisch aufgerufen und der Compiler hilft Dir, nicht nach dem Dispose etwas mit der Variable zu machen.