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 kleines_eichhoernchen
Thema: Funktion mit zwei Parametern als Thread aufrufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Geht auch super via Delegate.BeginInvoke. Einfach ein passendes Delegate erstellen, bzw. Action<> oder Func<> verwenden. Damit musst du nicht auf Typsicherheit verzichten und kannst auch wenn du brauchst einen Rückgabewert verwenden.

Schau dir bitte auch den Rückgabewert von BeginInvoke. Mit dem Waithandle hast du automatisch eine Thread.Join-Funktion.

Nachteil des ganzen, beim Aufruf von BeginInvoke solltest du später EndInvoke aufrufen. Besonders bei den MS Implementationen könnten sonst Speicherlecks entstehen.


Selber Threads zu erstellen, ist meist nur sinnvoll, wenn du die volle Kontrolle(Überwachung) über den Thread brauchst oder es sich um eine "lange" Aufgabe handelt. Wenn du nur etwas parallelisieren möchtest, ist die direkte Verwendung von Thread verkehrt, da allein das Erstellen des eines neuen Threads Ressourcen und Zeit verbraucht. Threadpool (BeginInvoke zählt auch dazu) verwenden existierende Threads, die nur drauf warten endlich mal was zu tun zu bekommen.

Thema: SetupProjekt installieren der Applikation + richtige VSTO Runtime Version
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat
Soweit mir bekannt, ist es nicht möglich aus einem Setup heraus ein weiteres Setup zu startet.
Doch das geht. Das Ganze nennt sich Chainer. Bestes Beispiel ist die Installation des SQL Servers, die aus vielen kleinen einzel MSIs besteht. Problem ist nur, die MSI Pakete müssen den Vorgang unterstützen.

Hallo TinaQ,
eine gute Alternative wäre, du schreibst dir ein eigenes Bootstrapper-Package. Siehe dazu Authoring a Custom Bootstrapper Package. Mit entsprechenden InstallConditions kannst du den Bootstrapper entsprechend Steuern.

Thema: Asynchrone Sockets: Programme beenden sich wenn der Client eine Nachricht sendet
Am im Forum: Netzwerktechnologien

Der Main-Thread darf sich nicht beenden.

Thema: XmlSerializer "überschreiben"
Am im Forum: Rund um die Programmierung

Hallo chilic,
wenn du es chic haben willst, musst du auf IXmlSerializable umsteigen und die Klasse, die Point verwendet eben selbst serialisieren.

Thema: Method Interrupt
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
Die Methode integriert sich in ein Framework welches die Methode auch synchron aufruft, daher erwartest es auch das Ergebnis synchron. Dem entsprechend kann ich dort den Aufruf leider nicht beeinflussen.
Aber du kannst die Gui logisch von deinem Framework/BusinessClass trennen - Ist kein muss, nur sind die Anwender von heute sehr verwöhnt.

Alternative zu Thread.Sleep ist ein Timer.

Thema: XmlSerializer "überschreiben"
Am im Forum: Rund um die Programmierung

Schreib dir ne eigene Struktur und spendiere ihr entsprechende Konvertierungsoperatoren.

Thema: IIS6 Webanwendungen beim ersten Aufruf langsam
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Du kannst die Seite beim Server-Start entsprechend auch "vorladen". Führe dazu einfach beim Start


telnet localhost/YourSite.aspx 80
aus. Am besten erstellst du dir mit sc.exe einen Dienst und gibst als Abhängigkeit den WWW-Publishing-Dienst an.

Thema: Methoden anhand von Collection Einträgen aufrufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wenn das ganze später eventuell mal erweitert werden soll, könnte es Sinn machen, statt Xml direkt eine Scriptsprache (wie Lua, oder C# selbst) zur Steuerung zu verwenden.

Thema: COM-Komponente von C++ einbinden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ist die COM-Dll registriert (regsvr32)?

Wie instanzierst du eine Klasse/Interface?

Thema: Eure Meinung zu Google Streetview?
Am im Forum: Smalltalk

Hallo Marsstein,
doch ich glaube schon. Das liegt vor allem an unseren (teils sehr) beschränkten Politikern, die nur über unwichtige Themen wie GSV debattieren bzw. sich öffentlich dazu äußern.

Die wirklich wichtigen Themen wie SWIFT oder die Weitergabe persönlicher Daten bei EC-Bezahlung wie bei REWE spricht keiner an bzw. geht bei den unwichtigen Gewusel direkt unter.

Genauso das Thema "Schützt eure Kinder". Die Politiker nutzen die Ängste der Bevölkerung um irgendwelche sinnlosen Gesetzesänderungen durch zu boxen, teilweise mit schwerwiegenden Konsequenzen.

Thema: System.Threading.Timer schmiert ab
Am im Forum: GUI: Windows-Forms

solltest auch darauf achten, dass du dir immer die Timer-Instanz merkst. Tust du das nicht, räumt der GC dir den Timer weg und das Ticken hört dann auf.

Thema: Zeilenumbruch und andere Exoten
Am im Forum: Web-Technologien

Lass die Zeilenumbrüche so wie sie sind und geb deinen Text einfach in einem <pre>...</pre>-Tag aus. Vorteil, es werden auch fürs web "überflüssige" Leerzeichen beibehalten.

Thema: Setup-Projekt mit Formular für Eingabe der Zugangsdaten für Sql Server
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Mit Orca in den einzelnen MSI-Tabellen zu pfutschen, halte ich für schmierig. Erstell dir lieber dein eigenes Installationsprogramm mit Wix

Beispielsweise wird von AppSecInc. Community MSI Extensions ein SQL Dlg mit angeboten.

Solltest dich aber vorher mit dem Aufbau und der funktionsweise von MSI-Paketen vertraut machen.

Thema: Type by Name (String)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wie wärs mit dem Namespace?


typeName = "System.String";
sollte helfen.

Thema: DLL Debuggen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Füg mal den Pfad zu den Symbolen manuell hinzu (siehe Bild).

Ansonsten kannst du auch über die Aufrufliste mit rechter Maustaste Symbole laden.

Thema: DLL Debuggen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Falls man keine Symbole hat, kann man auch den Reflector (Pro Variante) benutzen. Wie das geht:

Debug With Reflector
.NET Reflector Pro Walktrough (Step 3)

Thema: Schützt endlich unsere Kinder: Was steckt hinter der Aktion?
Am im Forum: Smalltalk

Spätestens seit der letzten großen Koalition hat D. auch keine Demokratie mehr sondern nur eine Lobbykratie. Fasst alles was dort beschlossen wurde, hatte mit Volksnähe wenig am Hut.

Thema: COM-Object unserialisiert in DB speichern und wiederverwenden?
Am im Forum: Datentechnologien

Ein COM-lässt sich nicht speichern und beispielsweise nach einem Neustart direkt wiederverwenden. Problem ist das intern diverse Handles/Ressourcen benutzt werden, die zu einem späteren Zeitpunkt wahrscheinlich nicht mehr existieren.

Deshalb speichere nur den Zustand des Objektes (get, set Properties).

Thema: Schützt endlich unsere Kinder: Was steckt hinter der Aktion?
Am im Forum: Smalltalk

RTL2 und den Machern von Tatort Internet geht es nur um Einschaltquoten und Geld.

Hier ein paar sehr Interessante Links
Hobby-Ermittler und Hobby-Juristen am “Tatort Internet”
Nichts sagen, gehen
„TATORT INTERNET“ (Verbot der Ausstrahlung durch einstweilige Verfügung)
RTL 2 kann nicht den Rechtsstaat ersetzen.
Kinderschützer attackieren RTL-2-Show
Caritas-Mitarbeiter verschwindet nach TV-Folge

Den Kindern (egal ob betroffen oder nicht) geht es durch diese Sendung definitiv nicht besser als ohne.

Thema: Wrapper zum bereitstellen einiger Funktionen als COM-Schnittstelle
Am im Forum: Rund um die Programmierung

Such dir ein altes VB6 und binde den COM-Verweis dort ein. Denke mit VB ist es leichter zu testen als mit C++

Thema: dotfuscator und Setup-Projekte
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Hirnmaster,

Zitat
Suche nach Post Build Events bringt keine Lösung
Und ob sie das tut. Beim Suchen Gehirn anschalten. Beispiel How to: Specify Build Events (C#)

Thema: FileSystemWatcher
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
Wird eine Exportdatei eines Fremdsystems dort abgelegt, reicht der Watcher den Dateipfad an die API-Importroutine des empfangenden Systemes weiter
Warum nicht einfach einen Timer (System.Threading.Timer) verwenden, der jede Sekunde entsprechende Verzeichnisse nach neuen Dateien durchsucht und anschließend deine API aufruft? So eine Klasse wäre schnell geschrieben und zu dem ressourcenschonender und skalierbarer als mehrere FileSystemWatcher.

Thema: Hostname auflösen mit Timeout?
Am im Forum: Netzwerktechnologien

Hallo DeViL666.on,
bitte befass dich erstmal mit den Möglichkeiten und Einschränkungen des .NET Frameworks sowie des Threadings unter Windows und .NET.

Du brauchst nämlich in diesem Beispiel keinen Thread und keinen Threadpool. Das gibts bereits nahezu alles fasst fertig. Schau dir bitte folgende Links an:

Abgeborchener Thread soll nichts mehr schreiben

Asynchronous Programming Design Patterns

Hallo olimlad,
du kannst das IAsyncResult für einen Timeout verwenden.


IAsyncResult result = Dns.BeginGetHostAddresses(..., callbackFunc);
WaitHandle.AsyncWaitHandle.WaitOne(5000);

...

private void callbackFunction(IAsyncResult result ) {
  Dns.EndGetHostAddresses(result);
}
Hinweis, ohne Aufruf von EndXY bei MS Implementierungen hat deine Anwendung ein Speicherleck, daher bitte immer bei BeginXY die passende EndXY-Methode aufrufen.

Thema: C# Compiler mit diesen Anforderungen?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Notepad++ mit Syntaxhighlight für ziemlich viele Sprachen. Die zum Kompilieren benötigte csc.exe kennst du ja bereits.

Eine Build/Make-Datei wäre dabei auch nicht schlecht. Beispiel MSBuild oder NAnt

Thema: Unterschiede von Bibliotheksverweisen in einem Installer Projekt zur VisualStudio Solution
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

In .NET gibts dafür Probing. Such einmal nach app.config probing.

Der Dateiname ist absolut egal. Verweise werden anhand des Assemblynamens (Name der Assembly, Version, Kultur, public Token) geladen.

Als Install-Framework kann ich dir Windows Installer XML (WiX) toolset empfehlen. Solltest dich aber unbedingt vorher mit dem Aufbau und der Funktionsweise von MSI-Paketen auseinander setzen

Thema: ASP.NET Kontaktformular und Spam
Am im Forum: Web-Technologien

Es ist ein allgemeiner Irrglaube das Javascript irgendwelchen Schutz mitsichbringt. Im Gegenteil JavaScript läuft im Browser. Jeder kann so den Quelltext einsehen, beliebig modifizieren (beispiel GreaseMonkey) und entsprechend Requests faken.

Außerdem kann man bereits als C#-Anfänger leicht eine Webseite mit einem Browser-Control fernsteuern - egal ob mit oder ohne JS.

Nur verschiedene Benutzereingabe bieten einen halbwegs akzeptablen Schutz vor einer Fernsteuerung.

Thema: ASP.NET Kontaktformular und Spam
Am im Forum: Web-Technologien

Für mich gehört da ein Captcha hin, um wirklich genau feststellen zu können, ob das wirklich eine Usereingabe ist. Viele mögen zwar Captchas als lästig empfinden, allerdings sind diese wirklich wichtig, um eine programmgesteuerten und Usereingabe zu unterscheiden.

Meiner Meinung nach sollte auch jedes Bestellformular ein Captcha enthalten.

Zitat
Gleichzeitig auch mit dem DateTime aus der Session prüfen, ob da eine mindestspanne dazwischen liegt.
Pro Client können auch mehrere Sessions existieren. Zum Beispiel bei verschiedenen Browsern.

Auch interessant: iX special "Sicher im Netz"

Thema: EBCs 2.0, deren Nähe zur prozeduralen Programmierung und deren Nutzen [inkl. Metadiskussion]
Am im Forum: Rund um die Programmierung

rein informativ und ohne mich selbst mit dem Inhalt des Links zu
identifizieren:

EBCs in der Praxis...erstmal abgebrochen, Beitrag von Manuel Wenk

Thema: Installer von InstallShield mit Reboot soll wieder als Admin ausgeführt werden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Wenn es sich um ein MSI-Setup handelt, dann heißt die Zauber-Property ALLUSERS (Großschreibung beachten!)

Thema: Anzahl der erstellten Benutzer-Objekte der eigenen Anwendung auslesen
Am im Forum: Rund um die Programmierung


class Foo {
  private static int s_Count;
  public static int Instances { get { return s_Count } }

  public Foo() {
    Interlocked.Increment(s_Count);
  }

  ~Foo() {
    Interlocked.Decrement(s_Count);
  }
}
Zusätzlich Dispose zu implementieren wäre auch nicht schlecht.