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 pdelvo
Thema: 4 Kerne CPU (aufgabe Verteilung von Threads) Aufgabetyp:myHttpWebRequest
Am im Forum: Web-Technologien

Gar nicht. Der Thread kann in einer Sekunde nacheinander auf jeden CPU Kern gelaufen sein. Das wird komplett von Windows verwaltet

Thema: Kostenlose Entwicklungsumgebung (und DBMS) für kommerzielle Nutzung
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Die Express Versionen von Visual Studio und SQL Server Express lassen sich ohne Einschränkung kommerziell nutzen. Das steht zumindest bei der 2010er Versionen. Ich denke nicht das sich das geändert hat

Thema: Projektdateien/Quelltexte synchronisieren mit Visual Studio 2012 oder Windows 7?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich würde git Empfehlen. Dann kannst du die Versionsverwalltung nutzen ohne das du eine Internetverbindung brauchst

Thema: IP-Adresse einstellen mit Text Box und Regex
Am im Forum: .NET-Komponenten und C#-Snippets

Geht auch sehr schön ohne selbst eine Regular Expression zu schreiben. Außerdem unterstützt deine Variante nur IPv4, und nicht v6

private void txbRouter_TextChanged(object sender, EventArgs e)
             {
                 IPAddress address;
                 txbRouter.BackColor = IPAddress.TryParse(txtRouter.Text, out address) ? Color.White : Color.PaleVioletRed; 
             } 

Thema: Windows Phone 8 Entwicklung nur mit Windows 8
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ja leider :( Mein Intel Core2Quad Q6600 kanns zum Beispiel leider nicht

Thema: Kleines Mathe-Problem: Wurzelziehen bei Ungleichungen
Am im Forum: Smalltalk

Falls m > 0 kannst du das machen. Wenn m < 0 ist, dann muss man das Größer bzw. Kleiner Zeichen umdrehen
Denn
5^(-1) > 6^(-1), aber
5 < 6

Thema: Ausgehende Verbindungen einer Applikation zuweisen
Am im Forum: Netzwerktechnologien

Was mir einfallen würde wäre netstat aufzurufen, und den Output parsen, falls du nichts anders findest

Thema: Relative url in Absolute Convertieren
Am im Forum: Web-Technologien

Betrachten von Exceptions geht auch ohne expliziten Parameter

Thema: Methodenaufrufe mit Rückgabewert in Queue einreihen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Einen Thread würde ich so direkt nicht benutzen. Da bekommst du unter umständen den Mindestabstand von 2 Sekunden nicht mit. Du musst ja, wenn du etwas gesendet hast zwei Sekunden warten. Der Timer würde ja den Start des Sendevorgangs als Anhaltspunkt benutzen. Demnach ist die Sleep Methode gar nicht so verkehrt. Dennoch würde ich das leicht anders lösen und die Task.Delay Methode verwenden. Die benutzt intern einen Timer, blockiert den Thread also nicht.

Dann würde ich als Queue entweder herbivores nutzen, aber auch die neue ConcurrentQueue<T> aus dem Framework bietet sich an.

Das locking um auf das Ergebnis zu warten finde ich auch eher suboptimal.

So, oder so ähnlich würde ich das lösen:

   class Program
    {
        static void Main(string[] args)
        {
            Message m1 = new Message();
            Message m2 = new Message();
            Message m3 = new Message();

            Sender sender = new Sender();

            var result1 = sender.SendMessageAsync(m1);
            var result2 = sender.SendMessageAsync(m2);
            var result3 = sender.SendMessageAsync(m3);

            result1.ContinueWith(a => Console.WriteLine("Result 1"));
            result2.ContinueWith(a => Console.WriteLine("Result 2"));
            result3.ContinueWith(a => Console.WriteLine("Result 3"));

            sender.Start();

            Console.ReadKey();
        }
    }

    public class Sender
    {
        CancellationTokenSource _tokenSource;

        ConcurrentQueue<Tuple<TaskCompletionSource<Result>, Message>> _messages = new ConcurrentQueue<Tuple<TaskCompletionSource<Result>, Message>>();

        public Sender()
        {
        }

        public Task<Result> SendMessageAsync(Message message)
        {
            if (message == null) throw new ArgumentNullException("message");
            var tcs = new TaskCompletionSource<Result>();

            _messages.Enqueue(new Tuple<TaskCompletionSource<Result>, Message>(tcs, message));

            return tcs.Task;
        }

        public async Task SendingThread()
        {
            while (_tokenSource != null && !_tokenSource.IsCancellationRequested)
            {
                Tuple<TaskCompletionSource<Result>, Message> message;

                if (_messages.TryDequeue(out message))
                {
                    try
                    {
                        var result = await SendMessageAsync(message.Item2.RequestMessage);

                        message.Item1.SetResult(new Result { ResultingString = result });

                        await Task.Delay(2000);
                    }
                    catch (Exception ex)
                    {
                        message.Item1.SetException(ex);
                    }
                }
                else
                {
                    await Task.Delay(100);
                }
            }

            foreach (var item in _messages)
            {
                item.Item1.SetCanceled();
            }
        }

        private async Task<string> SendMessageAsync(string message)
        {
            //TODO: send message here

            return message;
        }

        public void Stop()
        {
            if (_tokenSource != null && !_tokenSource.IsCancellationRequested)
                _tokenSource.Cancel();
        }

        public async void Start()
        {
            if (_tokenSource == null || _tokenSource.IsCancellationRequested)
                _tokenSource = new CancellationTokenSource();
            await SendingThread();
        }
    }

    public class Message
    {
        public string RequestMessage { get; set; }
    }

    public class Result
    {
        public string ResultingString { get; set; }
    }

Thema: C#/Flash - Game: Encryption Problem
Am im Forum: Rund um die Programmierung

Man kann es auch so machen, dass der Server an den Client den öffentlichen Schlüssel überträgt. Der Client generiert einen zufälligen key für eine symmetrische Verschlüsselung (zB Aes), verschlüsselt den Key mit dem Public key und sendet diesen an den Server. Dieser kann den Schlüssel mit dem Private Key entschlüsseln. Ab da wird dann symmetrisch verschlüsselt. Die asymmetrischen Verschlüsselungsalgorythmen sind auch eher nicht für große Datenmengen zu gebrauchen, eignen sich aber perfekt zum übertragen von symmetrischen Schlüsseln.

Thema: Suche Plugin/Extension für Visual Studio 2010 welches die letzten Änderungen am Code zeigt
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Sobald man das Projekt erstellt wird doch sowieso gespeichert

Thema: [erledigt] Einsatz von SSD unter Visual Studio 2010
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich glaube nicht das das unter laufendem Windows geht, kann mich aber auch täuschen. Und natürlich die Anführungszeichen nicht vergessen ;)

Thema: Datenbank-Server neu starten aus einer C#-Anwendung heraus
Am im Forum: Rund um die Programmierung

Du kannst festlegen welcher Benutzer die Rechte hat einen Dienst zu starten und stoppen.

"C:\Program Files (x86)\Windows Resource Kits\Tools\subinacl.exe" /service "Name des Dienstes" /grant=[Account oder Gruppe]

Dann sollte auch der entsprechende Benutzeraccount das dürfen.

LG pdelvo

Thema: Festplatte aktiv halten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Vielleicht einfach mal gucken ob man bei dem Gerät einstellen kann ob die Platten bei Inaktivität ausgeschaltet werden sollen oder nicht.

Wenn das nicht so geht kannst du das machen. Vielleicht alle 2 Minuten ein Byte in einer dummy Datei ändern.

LG pdelvo

Thema: WindowsPhone7.5 - daten an ein php script senden
Am im Forum: Web-Technologien

Crosspost

Thema: Nach Absturz von VS => .cs Datei leer
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Schaff dir besser ein Source Code Verwalltungssystem an, dann brauchst du dich nicht auf sowas wie die Visual Studio Backup Funkttion zu verlassen ;)

Thema: VS 2010 + TFS: F5 kompiliert immer auch Setup-Projekte
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Oder mache einen Rechtsklick auf dein Startprojekt und guck dir die Abhängigkeiten an. Vielleicht ist dort ein Haken für das Setup Projekt der nicht dorthin gehört. Falls nicht in den anderen Projekten nachsehen ob da irgendwo was falsches angeschallten ist

LG pdelvo

Thema: [gelöst] HttpListener bricht Übertragung ab
Am im Forum: Web-Technologien

Du musst aber aufpassen, das du keine Angriffsfläche für Angreifer bildest. Du reservierst so viel Bytes im Arbeitsspeicher, wie der Client behauptet zu senden. Wenn ich jetzt 5 große Requests starte läuft da ganz schnell der Arbeitsspeicher voll. Besser ist es vielleicht die Daten auf die Festplatte zu schreiben.

LG pdelvo

Thema: [gelöst] HttpListener bricht Übertragung ab
Am im Forum: Web-Technologien

Read ließt wahrscheinlich nur, was bis zu diesem Zeitpunkt an Daten da ist. u musst diese also immer Stückeweise wegschreiben, bis du alles beisammen hast.

LG pdelvo

Thema: StartupManager - Autostarts verspätet starten
Am im Forum: Projekte

Hi

Habe mir gerade einmal den Source Code angesehen.

Du benutzt den System.Threading.Timer. Bei diesem muss man aufpassen. Man sollte bei diesem Referenzen auf die einzelnen Instanzen behalten, damit sie nicht vom GC disposed werden. Das ist mir schon passiert, siehe auch den Hinweis in Timer-Klasse.

LG pdelvo

Thema: VS 2012 & Win8 Verfügbarkeit
Am im Forum: Smalltalk

Jetzt muss VS 2012 nur noch über Dreamspark verfügbar sein, dann bin ich glücklich :)

LG pdelvo

Thema: Socket Server Multiclientfähig
Am im Forum: Netzwerktechnologien

Generell ist es aber nicht wirklich gut Threads dafür zu verschwenden auf eine Netzwerkanfrage zu warten. Da ist das benutzen von asynchronen Methoden deutlich sparsamer. Wenn man C# 5 zur Verfügung hat sieht die asynchrone Variante ohne Threads fast genau so aus

Thema: Compact Framework: Eigenschaften von Exe - AssemblyVersion in Quelltext hinterlegen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich weiss jetzt icht ob ich dich richtig verstanden haben, aber so kann man die Versionsnummer mit Assembly.GetExecutingAssembly().GetName.Version auslesen. Wichtig dabei ist, dass man sich zur der Zeit in der richtigenAssembly befindet. Wenn man das aus einer dll aufruft bekommt man natürlich deren Versionsnummer.

Ich hoffe das ist es was du gesucht hast

LG pdelvo

Thema: EntityFramework: Laden von Teilobjekten
Am im Forum: Datentechnologien

Du kannst doch mit Linq bestimmen welche Dinge du laden willst

So kannst du zB nur Name und Addresse laden. Soeit ich weiss wird auch dann auch nur Name und Adresse im resultierenden SQL Query eingebaut und der Rest nicht.


var results = from TableEntity x in table
                   where .....
                   select new TableEntity
                   {
                       Name = x.Name,
                       Address = x.Address
                   }

Thema: Kaufempfehlung für Desktop-Rechner (Development + Gaming)
Am im Forum: Smalltalk

Meinen Erfahrungen nach ist Alternate immer etwas teurer. Versuchs mal bei hardwareversand.de. 240mb SSD finde ich auch recht übertrieben. Habe auf meiner 128gb SSD gerade sogar 2 Betriebssysteme (win7 & 8) drauf und komme damit gut klar. Was mir an der Amazon Konfiguration gefällt (wo bei Fertigrechnern oft gespart wird) ist ein vernünftiges Netzteil. Oft werden billige "Knallfrösche" verbaut, die wenn sie sich verabschieden direkt noch ein paar Komponenten mit in den Tod reißen. Was mir allerdings nicht gefällt ist, dass keine Information über die verbaute SSD und die verbaute Festplatte gegeben wird. Das heißt meist nichts gutes, wenn der Hersteller und das Modell verschwiegen wird.

LG pdelvo

Thema: Visual Studio 11 Beta ==> Visual Studio 2012 RC ==> Release ==> Updates
Am im Forum: Szenenews

Offenbar bekommt das Icon eine weitere Überarbeitung. Eben zufällig in diesem Video gesehen(Ein neuere Build von VS sein). Mir gefällts ;)

Thema: Datenempfang des Streams als Event feststellen bzw. Datenempfang direkt in eine Textbox weiterleiten
Am im Forum: Rund um die Programmierung

Ich bin mal so frei und poste in C# 5 + .net Framework 4.5 Beispiel


class Form1 : Form
{
	FtpClient _ftpClient;
	Stream _ftpLogStream;
	TextReader _logReader;
	public Form1()
	{
		InitializeComponent();
		
		InitializeFtp();
	}

	void InitializeFtp()
	{
		//...
		StartReadingAsync();
	}

	async void StartReadingAsync()
	{
		_ftpLogStream = _ftpClient.FtpLogStream;
		_logReader = new StreamReader(_ftpLogStream);
		while(true)
		{
			var line = await _logReader.ReadLineAsync();
			textBox1.Text += line + Environment.NewLine;
		}
	}
}

Thema: Klasse anhand übergebener Parameter instanzieren [==> Generics]
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wie wäre es mit einfachen Generics?

    class Program
    {
        static void Main(string[] args)
        {
            double d1 = 10.0, d2 = 15.0;

            double result1 = Rechner.Rechne<Addierer>(d1, d2); // 25
            double result2 = Rechner.Rechne<Subtrahierer>(d1, d2); // -5
        }
    }

    public static class Rechner
    {
        public static double Rechne<T>(double input1, double input2) where T : IRechner, new()
        {
            T rechner = new T();

            return rechner.Rechne(input1, input2);
        }
    }

    public interface IRechner
    {
        double Rechne(double input1, double input2);
    }

    public class Addierer : IRechner
    {
        public double Rechne(double input1, double input2)
        {
            return input1 + input2;
        }
    }

    public class Subtrahierer : IRechner
    {
        public double Rechne(double input1, double input2)
        {
            return input1 - input2;
        }
    }

Thema: [erledigt] Konvertierung - Unterschied Convert.ToByte(i) und (byte)i
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Was sich immer wieder lohnt ist ein Block in einen Disassembler.

Convert.ToByte(char) prüft, ob das char ausserhalb des erlaubten Bereiches (> '\x00ff') ist, und wirft eine OverflowException, falls das der Fall ist. Wenn nicht wird dort auch gecastet: (Byte)value

LG pdelvo

Thema: Team Foundation Server 2012 auf Windows 8 installieren - Buildserver
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo!

Ich habe mir gestern auf Channel 9 ein Video zum TFS Server 2012 Express angesehen und wollte das nun auch einmal ausprobieren. Die Installation verlief soweit in Ordnung, ohne weitere Komplikationen, bis ich dann den Buildservice konfigurieren wollte. Der Dienst "TFSBuildServiceHost.2012" konnte nicht gestartet werden, weil ein Dienst, von dem er Abhängig ist nicht gestartet werden konnte. Als ich einen Blick in den entsprechenden Reiter unter den Eigenschafften des Dienstes geworfen habe wurde mir allerdings anzeizeigt, dass es keine Abhängigkeit gibt. Dann habe ich einen Blick in die Ereignisanzeige geworfen und bekannt da erst mal eine Fehlermeldung, die Reif für den "Humor: Java Programmierer ... und andere lustige Sachen" Thread wäre.

Fehler
Der Dienst "Visual Studio Team Foundation-Builddiensthost 11" ist vom Dienst "Anmeldedienst" abhängig, der aufgrund folgenden Fehlers nicht gestartet wurde:
Der Vorgang wurde erfolgreich beendet.

Dann habe ich versucht den Dienst von Hand zu starten und bekam direkt die nächste Fehlermeldung
Fehler
Dieser Computer ist als Mitglied einer Arbeitsgruppe konfiguriert, nicht als Mitglied einer Domäne. Der Anmeldedienst braucht bei dieser Konfiguration nicht gestartet zu sein.

Es kann doch nicht sein, dass ich mich in einer Domäne für den TFS 2012 Express befinden muss, damit ich CI benutzen kann. Habe durch Google auch nichts hilfreiches dazu gefunden.

Weiß da vielleicht jemand Rat?

Lieben Gruß pdelvo