Laden...
Avatar #avatar-3200.jpg
unconnected myCSharp.de - Member
Softwareentwickler Oerlinghausen/NRW Dabei seit 13.08.2006 849 Beiträge
Benutzerbeschreibung

Forenbeiträge von unconnected Ingesamt 849 Beiträge

06.08.2019 - 14:18 Uhr

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.

19.06.2019 - 12:48 Uhr

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.

16.05.2019 - 14:31 Uhr

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"}

22.03.2019 - 13:12 Uhr

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

22.03.2019 - 09:26 Uhr

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?

10.07.2018 - 13:07 Uhr

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.

10.07.2018 - 07:41 Uhr

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.

10.07.2018 - 07:15 Uhr

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.

18.06.2018 - 14:33 Uhr

@_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.

18.06.2018 - 13:56 Uhr

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 😦

12.06.2018 - 08:10 Uhr

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

12.06.2018 - 06:34 Uhr

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.

30.05.2018 - 07:09 Uhr

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/

11.04.2018 - 06:55 Uhr

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.

13.03.2018 - 06:16 Uhr

Hallo Christoph,

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.

12.03.2018 - 12:18 Uhr

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.

05.03.2018 - 13:26 Uhr

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.

28.02.2018 - 13:23 Uhr

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?

28.02.2018 - 06:30 Uhr

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

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.

23.02.2018 - 10:28 Uhr

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?

06.02.2018 - 09:40 Uhr

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.

05.01.2018 - 14:30 Uhr

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 😉 )

05.01.2018 - 11:59 Uhr

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.

28.11.2017 - 14:27 Uhr

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

28.11.2017 - 14:09 Uhr

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".

14.11.2017 - 12:55 Uhr

Hi,

gibt es einen Grund warum Du nicht die OracleConnection benutzt?

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

02.11.2017 - 14:45 Uhr

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.

10.10.2017 - 11:36 Uhr

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.

10.10.2017 - 10:02 Uhr

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.

22.09.2017 - 06:33 Uhr

Nur eine Frage,

klingt jetzt bestimmt komisch, aber hast Du schon mal ohne Debugger einen Release Build probiert?
Da hab ich schon Leute dran verzweifeln sehen.

13.09.2017 - 12:35 Uhr

Hallo Robin,

wann versuchst Du denn das Property MeineDependencyProperty auszulesen? Im Konstruktor ist es dafür zu früh, da das control in dem Moment noch nicht komplett geladen ist.

11.09.2017 - 09:23 Uhr

Ausserdem schauen die Spaces in

http: // localhost:5000 seltsam aus.

07.09.2017 - 12:33 Uhr

Du solltest aber auch bedenken, das auf solchen dann meist auch kein IE11 läuft.. sondern dann sowas wie IE6 kommt -> Reportviewer ist dann eher kritisch.. (aus eigener erfahrung)

07.09.2017 - 11:01 Uhr

Kann sein das er sich hier behakt weil Namespace = Classname, das gibt auch in anderen Konstellationen immer wieder Probleme.

Ausserdem (sorry WPF ist schon ein bisschen her..) meine ich, das der Editor die USercontrols in der Assembly sucht. Versuch mal das Xaml zu schliesen, kompilieren und dann wieder zu öffnen.

05.09.2017 - 07:52 Uhr

Hallo MoMa91,

hört sich im ersten Moment wie ein Cache Problem an. Browser - Cache leeren -> neu laden.

P.S.: Den Body hart auf 1600px zu stellen ist in den meisten Fällen keine gute Idee.

01.09.2017 - 13:19 Uhr

Also bei mir ist VS2017 stabil.

Welche Version? Addons?

Vs kann man in den Log Modus versetzen: /Log (Devenv)

vielleicht sieht man da was.

01.09.2017 - 11:34 Uhr

Hallo impish1234

Das erste <tem:CouponActivationRequest> ist die Methode aus der IService das 2. die Beschreibung der Klasse bzw. des Input Parameter.

01.09.2017 - 09:53 Uhr

@Th69 Wenn ich den TS richtig verstanden habe, ist das genau das Problem. Die Zeilen sind drin, obwohl sie nicht da sein dürften.

@ impish1234 kürze mal bitte die klasse CouponActivationRequest auf wesentliche, und poste sie nochmal.

17.08.2017 - 07:25 Uhr

habe ja wegen den parallelen Zugriffen extra ein TestPorgramm geschrieben: Der parallele Zugriff wirft nur eine Exception, aber löscht nicht meine Section.

Vielleicht ist das aber nicht immer so. Ohne jetzt in die sourcen zu gucken, könnte es sein das einer deiner Threads gerade liest während der andere gerade die zu schreibende Section aus der AppCOnfig gekickt hatte, bevor er die Section wieder reinschreibt. Deine Tests mit dem Timer sind zwar gut gemeint, werden aber die Situation in der Anwendung vllt. nicht ganz genau Nachstellen können.

Wäre zwar schade wenn das in der derzeitigen Impl. möglich wäre (für mich ein Bug), aber man hat ja schon Pferde kotzen sehen 😃

Syncronisiere die Zugriffe mit lock, und schau ob dein Problem verschwindet. Ist eh schöner, da dann auch die Exceptions verschwinden.

16.08.2017 - 09:18 Uhr

Hallo jessimaus,

hast Du INotifyPropertyChanged in deinem Model mit dem Property TbxIsFocused implementiert?

15.08.2017 - 12:42 Uhr

Hallo Pinki,

das muss nicht der wirkliche Grund für deine Abstürze sein.
Ich habe ein Project das ca.10 dieser Meldungen raushaut, und trotzdem einwandfrei läuft.

Ich habe allerdings auch nie herausgefunden woran das genau lag, habs dann irgendwann aufgegeben.

Du solltest vielleicht mal versuchen, dich an das AppDomain UnhandledException Event dranzuhängen und/oder mit dem fuslogvw schauen was das Assembly Binding so treibt.

06.07.2017 - 12:46 Uhr

Forms oder WPF ?

Bei Forms hat es einige Änderungen gegeben: High Dpi Support in Windows Forms

Vielleicht liegt hier der Hund begraben.

Bei WPF gab es auch Änderungen, wenn auch nicht so Signifikant. Versuche mal EnableMultiMonitorDisplayClipping explizit an oder auszuschalten.

26.06.2017 - 12:34 Uhr

@LaTino
Meines wissens wird das UnknownElement nur bei der deserialisierung aufgerufen.

@Bradley
Um das erwünschte verhalten mit dem XmlSerializer zu bewerkstelligen fällt mir auf anhieb nur eine modifizierte eigene Version eines XmlWriters ein.

aber warum nur sollte man soetwas tun?

23.06.2017 - 06:12 Uhr

Hast Du schon mal über eine Datenbank nachgedacht? Abhängig von der Form deiner Daten, kannst Du hier immer nur das laden und schreiben was Du gerade bearbeitest. Ist auch vielleicht besser falls jemand deine Anwendung nicht abbricht, sondern hart abschiesst bzw. Stromausfall etc.

02.06.2017 - 15:05 Uhr

Ist die in der Fehlermeldung erwähnte nicht gefundene Funktion von dir oder einem 3´t Anbieter?

Um sicher zu gehen solltest Du einen Clean & Rebuild (DEBUG) deiner Solution anstossen, und alle files (exe, dlls, pdb) löschen und mit deinen neu kompilierten ersetzen.

Wenn das auch nichts bringt, hilft manchmal auch ein Restart des Visual Studios (inkl. löschen der verstecken .suo Datei). Danach nochmal den ersten Schritt wiederholen.

02.06.2017 - 10:53 Uhr

Hallo,

sieht mir aus, als wenn die dll auf dem Server nicht mit dem aktuellen Source Code stand übereinstimmt.

10.05.2017 - 10:04 Uhr

Wobei hier noch ein Unterschied besteht, wenn Counter ein nullable ist.

Das ToString würde hier mit einer NullReference fliegen, das Concat nicht.

Wobei es glaube ich Definitionssache ist, ob man die Variable dann noch als numerisch bezeichnen kann 😉

-> Das nur der vollständigkeit halber.

08.05.2017 - 07:38 Uhr

Hi,

ich fand das standard System immer recht frickelig bis ich den hier gefunden habe:
ResxResourceManager

Die Extension erleichtert die Arbeit mit dem System doch ungemein. Zumal man dann nicht immer alle Forms durchklickern muss und immer wieder die Sprache ändern muss. Wenn ich mich recht erinnere hat der Manager auch eine Ex/Import Funktion was die Arbeit mit externen Übersetzern nochmal erleichtert.