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 unconnected
Thema: Lebensdauer von Objekten; Werden Subklassen nicht mit zerstört?
Am im Forum: Grundlagen von C#

Hi,

kommt immer darauf an was Du in deine Class1 oder Subclass so treibst. Wenn das wirklich wie dargestellt nur simple POCOS sind, sollte das tatsächlich so funktionieren.

Die erste Instanz würde aber trotzdem noch eine weile im Speicher verbleiben, bis der Garbage Collector sich bemüht das Ding mal endgültig aus dem Speicher zu werfen.

Hast Du nun irgendwelche Resourcen gebunden, die nicht vernünftig abgeräumt wurden, kann es durchaus zu Exceptions kommen.

Ausserdem kann man noch sehr böse Sachen in Konstruktor oder Property Machen die solche Sachen hervorrufen. Aber wie T-Virus schon schreibt ohne Exception oder Code kann man hier nur raten.

Thema: eine List<string []> durchsuchen und materialisieren
Am im Forum: Grundlagen von C#

Hi,

Du bekommst aus deinem Linq statement ein IEnumerable<string>

Dieser wird tatsächlich bei jeder neuen Iteration die zugrunde liegende Liste neu durchsuchen.

Um das zu unterbinden müsstest Du das Ergebnis mit .ToList() oder .FirstOrDefault() persistieren. Je nachdem wieviele Ergebnisse Du erwartest.

Thema: DataGrid zeigt mir die RawView an (c#, WPF und powerShell)
Am im Forum: GUI: WPF und XAML

Wenn Du deinen Code über opengridwindow mit $data = [pscustomobject]$data ergänst sollte es eigentlich auch klappen.

Du solltest aber tatsächlich ein Object definieren. Am besten in deiner dll.

edit -> sorry musst natürlich für jede Zeile tun: $datarow = [pscustomobject] @{"Name"="Peter";"Nachname" = "Lustig"}

Thema: System.Net.Http in verschiedenen Projekten werden nicht gefunden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo 2 Sachen würde ich noch probieren:

1. Allerletzte Version von Studio installiert? -> Wenn nein -> update

2. Falls 1. nichts geholfen hat, hilft vllt. ein Assembly Redirect (4.0.0.0 - 4.2.0.0) -> 4.1.1.3

Thema: System.Net.Http in verschiedenen Projekten werden nicht gefunden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Schuppsl,

Versuch mal das zweite <Private>True</Private> zu löschen.

Die 4.2.ér Version scheint nicht von deinem Projekt, sondern von einem BuildTarget referenziert zu sein.

Ist denn die Datei

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Net.Http.dll

vorhanden?

Thema: Static Property - PropertyChanged für ItemsSource möglich?
Am im Forum: GUI: WPF und XAML

Zitat
Außerdem ist es jawohl Geschmackssache ob man Daten eher in einer Liste als einer DataTable verarbeitet.

Nein. Ich würde jeden Kollegen der was neues (Du machst den Teil ja neu) mit DataTable anfängt vierteilen. Weil ich das im Zweifelsfall vielleicht mal warten müsste. Datatable(genauso wie die typisierte Variante) gehören in die Mottenkiste.

Thema: Static Property - PropertyChanged für ItemsSource möglich?
Am im Forum: GUI: WPF und XAML

Nein ich meine schon die structs. Ich müsste jetzt tatsächlich lange nachdenken um mich zu erinnern, wann ich das letzte mal structs benutzt habe. Das Problem dabei ist ja, wenn du nicht explizit mit ref arbeitest, gibst Du immer eine Kopie von dem Object weiter. Wenn Du versuchst dann ein two-way binding zu benutzen, arbeitest Du im zweifelsfall nur auf der Kopie.

Benutze bitte in deinem eigenen Interesse besser POCO´s zur Datenhaltung.

Thema: Static Property - PropertyChanged für ItemsSource möglich?
Am im Forum: GUI: WPF und XAML

Hallo _Cashisclay,

wenn das möglich ist, dann nur mit fiesen hacks. Schreib es um. Ich will gar nicht wissen was es für Auswirkungen hat, wenn man versucht structs an die Gui zu binden.

Thema: Gibt es CDATA für Datenbankabfragen aus VB auch für C#?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

@_Cashisclay Beim ersten Beispiel hattest Du keine Parameter. Das war noch in Ordnung. In deinem 2. Beispiel lötest Du die Parameter direkt per String concat in den Sql.
Das ist in mehreren Situationen fatal. Wobei Sql Injection wohl der grösste minus punkt ist.
Ein anderer ist z.B. die fehlerbehaftete Umwandlung von div. Datentypen nach string und zurück.

Thema: Gibt es CDATA für Datenbankabfragen aus VB auch für C#?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ja, hat es..

ich vermute allerdings er sucht eigentlich nur nach einer Möglichkeit einen Multiline String zu benutzen.


var sql = @"

Select * 
FROM Zeiterfassung.dbo.Mitarbeiter

";

Und was ist an reinem Sql unsauber? Der Zugriff mit dem EF ist natürlich schöner, aber überall da wo es auf Performance ankommt, gerade da wo es über mehrere Tabellen geht, kommt das EF einfach nicht mit. Und ich habe es oft versucht :(

Thema: VS Community 2017 Offline aktivieren?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Oh, alles klar. Kenn den Vorgang nur von der Enterprise Version.

Thema: VS Community 2017 Offline aktivieren?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

in deinen Account musst Du nicht. Du musst nur unter Help -> Register Product den Lizenz Schlüssel eingeben. Ob dieser allerdings Offline aktiviert oder im Hintergrund im Netz Validiert wird, ist mir nicht bekannt.

Thema: SqlException unter Windows 10 seid Update auf 1803
Am im Forum: Datentechnologien

Hi,

ist zwar jetzt ein wenig Glaskugeln, aber das hier hört sich zumindest an als wenns damit zu tun haben könnte:

https://www.ghacks.net/2018/04/17/fix-pcs-no-longer-recognized-in-network-after-windows-10-version-1803-upgrade/

Thema: [Gelöst] ApiControllerCall via RestSharp - Wie auf Body zugreifen? [Lösung im Beitrag]
Am im Forum: Web-Technologien

Hallo Abt,

hast Du dazu eine Quelle?

bisher hatte ich nur auf dem Schirm das .Result eine eventuelle Exception in eine AggregateException kapselt. Das dieser Aufruf aber Deadlock anfälliger ist als GetAwaiter habe ich noch nicht gehört.

Thema: Visual Studio 2017 - Ihre App wurde angehalten, aber es gibt keinen anzuzeigenden Code
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Christoph,

Zitat
Müsste es bei einer Endlosschleife nicht so sein, das der Fehler immer kommt und nicht nur sporadisch?

Nicht unbedingt. Machmal entstehen solche Schleifen auch durch Race Conditions. Aber eher selten.

Thema: Visual Studio 2017 - Ihre App wurde angehalten, aber es gibt keinen anzuzeigenden Code
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat
Es gibt in dem Projekt kein Code behind

Das ist unerheblich. Du kannst so eine Endlosschleife auch im Xaml erzeugen.
Aber wie schon gesagt, ohne Code/Xaml ist das unmöglich zu analysieren.

Thema: Access "DB" mit async/await auslesen?
Am im Forum: Datentechnologien

Also um nochmals auf das Beispiel mit der Wäsche zurückzukommen.

Was wir machen ist, eine Maschine anmachen, dann zur nächsten gehen um die anzumachen, dann.... etc.

Das Waschen erfolgt hier imho parallel. Das Probleme mit dieser herangehensweise ist nicht das Waschen selber (Warten auf die Datenbank antwort), sondern das befüllen, entleeren (z.B. Mappen von Objekten) Das machst Du in diesem Fall alleine, also nacheinander.

Das würde sich wiederum nur mit "echter" Parallelität lösen lassen. Sprich mit Parallel.ForEach, Task.StartNew, Task.Run oder wie sie alle heißen.

Deshalb habe ich das Beispiel mit den Delays auch genau so gewählt.

Thema: Access "DB" mit async/await auslesen?
Am im Forum: Datentechnologien

Puh,

ich glaube wir reden hier aneinander vorbei.
Nehmen wir an ich hätte 3 Datenbanken die ich durch einen update befehl aktualisiere der jeweils 3 sekunden dauert (Replace für das Task Delay, also pures i/o).
Würdet ihr also sagen das ich nach dem obigen snippet dann 9 sekunden warte, bis alle fertig sind?

Thema: Access "DB" mit async/await auslesen?
Am im Forum: Datentechnologien

Sorry für die späte Antwort.. War ein wenig beschäftigt :)

Zitat
Naja, dann hast Du auch in Deinem ähnlichen Code keinerlei Parallelität.

Wie kann das dann erklärt werden?:


class Program
    {
        static void Main(string[] args)
        {
            Do();

            Console.WriteLine("Done");
            Console.ReadLine();
        }

        public static async void  Do()
        {
            var task1 = Do1();
            var task2 = Do2();
            var task3 = Do3();

            await task1;
            await task2;
            await task3;

            
        }

        public static async Task Do1()
        {
            await Task.Delay(1000);
            Console.WriteLine($"1 {DateTime.Now:O}");
        }

        public static async Task Do2()
        {
            await Task.Delay(500);
            Console.WriteLine($"2 {DateTime.Now:O}");
        }

        public static async Task Do3()
        {
            await Task.Delay(50);
            Console.WriteLine($"3 {DateTime.Now:O}");
        }
    }


Ausgabe:
Done
3 2018-02-28T06:24:21.4792141+01:00
2 2018-02-28T06:24:21.9261470+01:00
1 2018-02-28T06:24:22.4275398+01:00

Wenns keine parallelität hier gäbe, müsste die Reihenfolge eine andere sein. Natürlich nur wenn die Hauptaufgabe darin besteht auf irgendwas zu warten (I/O). 3 Threads werden hier natürlich nicht gestartet.

Thema: Access "DB" mit async/await auslesen?
Am im Forum: Datentechnologien

Zitat
Das was du da machst (asynchrone Aufrufe parallel ausführen) ist nicht immer zulässig.

@Sir Rufo
Kannst Du das einmal ein wenig genauer erläutern? In ähnlicher Form setze ich das auch öfter ein, ein Problem damit konnte ich noch nicht feststellen. Oder spielst Du hier auf die normalen Probleme mit Parallelität an?

Thema: [gelöst] Wann wird die SmtpFailedRecipientsException geworfen?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Nur so zum Verständnis.. Abt scheint es so zu verstehen das Du eine Email an 500 Empfänger schickst. Scheint mir bei Rechnungen aber eher unwarscheinlich. Mit 500 in einem Lauf meinst Du 500 Emails an 1 (oder 2 oder 3) Adresse(n) in einer Schleife oder?

Dann kannst Du allerdings durch loggen oder debuggen feststellen welche das genau sind, und selbst testweise Emails schicken.

Auch möglich sind Regeln des sendenen smtp Servers, amok laufende Antiviren programme, sendelimits etc.

Gibts eine InnerException?
Zu guter letzt könnte man sich mit dem Wireshark dazwischen hängen(bzw Fiddler? kann Fiddler smtp?) um die genaue Antwort des Servers zu bekommen.

Thema: Wie kann ich die SerialAPI, die im Form Designer angelegt ist, verwenden?
Am im Forum: GUI: Windows-Forms

Hi MBoerner,

meinst Du das?:

Thema: Aktualisieren des ForeignKeys nach Update
Am im Forum: GUI: WPF und XAML

Vermutlich wird es klappen wenn Du das selectedItem Property des Grids an ein Property in deinem VM bindest (nicht vergessen hier PropertyChanged aufrufen!)

Dann bindest du mit deiner Combobox nicht mehr direkt auf das SelectedItem Property deines Grids sondern auf das neue im VM.

Du tust dich sehr viel leichter in WPF, wenn alle Datenelemente die Du bindest, direkt INotifyPropertyChanged implementieren. (Kann man ja auch genrerieren lassen ;) )

Thema: Aktualisieren des ForeignKeys nach Update
Am im Forum: GUI: WPF und XAML

Das Problem hierbei, denke ich, ist die abwesenheit jedlicher INotifyPropertyChanged implementation.

Beim erstmal funktioniert das immer Klasse. Sobald sich was ändert, bekommt das die Gui dann nicht mehr mit.

Thema: Wert eines Dictionaries an einer bestimmten Stelle ausgeben
Am im Forum: Grundlagen von C#

Der Value ist in deinem Fall nicht der Name, wie du vllt. vermutest sondern das alter.

Console.WriteLine(people["Johanna"]); würde 16 ausgeben.

Dictionary ist in deinem Fall nicht die richtige Klasse (wenn ich richtig vermute).
So könntest Du auch nur einen Bob oder eine Johanna haben. Soll ja Leute mit gleichem Vornamen geben ;)

Du solltest versuchen dir erstmal ein Grundlagen Buch vorzunehmen. Ansonsten endet das in großen Frust.

Grüße

Thema: Wert eines Dictionaries an einer bestimmten Stelle ausgeben
Am im Forum: Grundlagen von C#

Hallo,

Du versuchst auf das dictionary mit einem Index (people[1]) zuzugreifen. Das geht so nicht. Dictionarys arbeiten mit Keys, in deinem Fall "Bob" oder "Johanna".

Thema: Bekomme offene Cursoren auf Oracle-DB nicht geschlossen
Am im Forum: Datentechnologien

Hi,

gibt es einen Grund warum Du nicht die OracleConnection benutzt?

Zitat
If the Devart.Data.Universal.UniConnection goes out of scope, it is not closed. Therefore, you must explicitly close the connection by calling Close.

hört sich für mich erstmal so an, als wenn man diese Connection nur mit bedacht wählen sollte. Und ob hier IDisposable (absichtlich) nicht richtig implementiert ist, ist auch fraglich.

Andererseits ruftst du ja auch explizit close auf.

edit: also Devart.Data.Oracle.OracleConnection

Thema: UDP Mehrere Daten gleichzeitig senden und empfangen
Am im Forum: Netzwerktechnologien

Hallo,

ich denke du vergisst in deiner MessageCallback Methode udpalg zu inkrementieren.
Ist aber auch gefährlich, denn wenn ein Udp Packet nicht ankommt oder der sender neu gestartet wird, kommt deine Logik vollkommen durcheinander.

Thema: "Type" als generischen Parameter verwenden
Am im Forum: Grundlagen von C#

Hallo nochmals,

leider können wir aus deinem Stück Code nicht sehen, was am Ende herauskommen soll. Ist ein wenig wie zu versuchen in eine Glaskugel zu schauen. Wenn Du noch eine genauere Antwort brauchst, fürchte ich, musst Du etwas weiter Ausholen.

Trotzdem sieht es mir so aus als könnten Interfaces hier nützlich sein.

Thema: "Type" als generischen Parameter verwenden
Am im Forum: Grundlagen von C#

Hallo,

das funktioniert so nicht weil T zur laufzeit theoretisch jeden Wert annehmen kann. Ein Typparameter muss aber schon zur Compilezeit feststehen.

Du kannst ihn aber als normalen Parameter übergeben.

dynamic solltest Du übrigens nur benutzen, wenn es sich absolut nicht verhindern lässt.