Laden...

Forenbeiträge von pdelvo Ingesamt 1.346 Beiträge

22.04.2013 - 22:10 Uhr

Ich würde anstatt einer Zeit einfach die letzte Id nehmen, und dann gucken ob ein Eintrag mit einer höheren drin ist. Da hat man nicht das Problem, das unter Umständen die Zeit zwichen Client und Server nicht synchron laufen, und dazu sollte das sogar noch etwas schneller sein 😃

18.04.2013 - 15:53 Uhr

Du castest das Ergebnis des Splits auf 'Array'. Beim Aufruf vom Join wird das in einem string umgewandelt, und join tut dann gar nichts mehr.

Aber was du da vorhast ist überhaupt keine gute idee. Daten wandelt man anders in eine andere Kultur um!

18.04.2013 - 14:03 Uhr

Warum willst du überhaupt SQL Compact übers Netzwerk haben, und benutzt nicht einen SQL Server der dafür ausgelegt ist?

15.04.2013 - 15:12 Uhr

Oh ich bin davon ausgegangen dass das Property eines mit backing field ist. So passiert natürlich nichts.

Du solltest versuchen das Laden der Items erst durchzuführen, wenn du vorher alle Filter angewand hast, also zuerst die Where Bedingungen, und dann das ToList, dann werden die Items auf dem Datenbankserver gefiltert.

LG pdelvo

15.04.2013 - 14:13 Uhr

Ich möchte noch hinzufügen, dass der GC unter Umständen den Timer Disposed, dann wird das Event (vielleicht) trotz ReadLine nicht ausgeführt.

Wird auch im MSDN Timer-Klasse erklärt.

15.04.2013 - 13:58 Uhr

In Linq wäre das dieser Ein(Zwei)zeiler:

TeamHandler.ActiveItems.RemoveAll(item => !item.EntityTeam.Any(obj => obj.Entity.EntityId == EntityId));
return TeamHandler.ActiveItems;

oder wenn die Urpsrungsauflistung nicht geändert werden soll:

return TeamHandler.ActiveItems.Where(item => item.EntityTeam.Any(obj => obj.Entity.EntityId == EntityId));

Aber ich sehe das auch so, dass es keinen Sinn macht listen zu verwenden. So holst du dir ja immer alle Items vom Server.

PS: Ist es gewollt, dass TeamHandler.ActiveItems auch geändert wird? Das passiert nämlich

15.04.2013 - 12:56 Uhr

100 % genau geht es natürlich nie.

Aber man kann (laut Wikipedia) die uhren übers Internet auf bis zu 10ms synchronisieren. Dann bestimmt der Server einen Zeitpunkt an dem die Aufgabe gestartet werden soll, und schickt diese Zeit an die Clients. Deswegen spielt dann die Latenz dazwichen keine Rolle, solange sie geringer ist als der Maxilamwert (wie weit die Aufgabe in der Zukunft geplant ist). Dann dürfte das auf bis zu ~10ms genau funktionieren können, genauer wirst du es übers Internet nicht hinbekommen.

LG pdelvo

14.04.2013 - 11:39 Uhr

Wenn man die Uhren synchronisiert, einen Task mit einem Startzeitpunkt verschickt (z.B. 10 Sekunden später), dann können die Clients dies etwa zur gleichen Zeit ausführen.

LG pdelvo

10.04.2013 - 22:18 Uhr

Je kleiner der Chunk desto schlechter die Performance.

Das kann ich so nicht nachfollziehen. Habe etwas rumprobiert, und 10mb war etwa die größe, bei der das Hashing am schnellsten war. Wenn die Parts größer werden muss sehr viel Speicher allokiert werden, was dann schnell mehrere gb werden kann. Habe einfach mal auf die schnelle wtas rumexperimentiert und komme auf ca. 1,8gb/s mit SHA1Cng, und auf 2,3GB/s mit MD5Cng. SHA1CryptoServiceProvider ist nur unwesentlich schneller als die Cng Variante. Bei Md5 ist das ganze deutlicher. Liege bei dem Md5CryptoServiceProvider bei 3,4GB/s.

Gemessen jeweils mit einem i7 3770k @ stock

        static void Main(string[] args)
        {
            var data = new byte[10*1024*1024];

            var random = new Random();

            random.NextBytes(data);

            var hasher = new ThreadLocal<SHA1Cng>(()=> new SHA1Cng());

            long calculatedParts = 0;
            var startTime = DateTime.Now;

            var timer = new Timer(state =>
                {
                    Console.Clear();
                    Console.Write("{0}gb/s", (10.0*Interlocked.Read(ref calculatedParts)/1024)/(DateTime.Now - startTime).TotalSeconds);
                },null, 1000, 1000);


            Parallel.For(0, 10000000, i =>
                {
                    var hash = hasher.Value.ComputeHash(data);
                    Interlocked.Increment(ref calculatedParts);
                });
            timer.Dispose(); // We dont want the timer to get disposed by the GC earlier ;)
            Console.Read();
        }
10.04.2013 - 15:09 Uhr

Hallo,

Parallelisiert hast du das ganze schon?

LG pdelvo

20.03.2013 - 17:18 Uhr

Man kann über die Kommandozeile einem anderen Account erlauben eine Url zu benutzen.

netsh http add urlacl url=http://+:8346/ user="NTAuthority\Authenticated Users"
19.03.2013 - 19:51 Uhr

Wenn man die stack Größe ändern muss stimmt meiner Meinung nach ezas am design nicht. Eine Vergrößerung des stacks hilft wenn, dann nur temporär, denn jedes hinzufügen von lokalen variablen steigert die Nutzung des stacks drastisch, eben da die spezifische Methode so oft aufgerufen wird, und dann müsste man wieder vergrößern. Dazu kommt noch, dass Zeiger unter 64bit größer sind, und man dementsprechend auch weiter aufpassen muss.

19.03.2013 - 15:15 Uhr

Immer wenn eine methode aufgerufen wird muss die Rücksprungadresse auf den Stack. Dessen größe ist beschränkt. Es spiel keine Rolle ob es immer die gleiche Methode, oder ein Ring aus Methoden ist. Auch muss die Rekursion nicht unendlich sein, nur so groß, dass der Stack nicht mehr ausreicht.

LG pdelvo

14.03.2013 - 16:50 Uhr

Ja diese wurden meines Wissens nach umbenannt. Genau so wie die DeleteObject Methode. Die heißt jetzt einfach Remove.

LG pdelvo

13.03.2013 - 16:17 Uhr

Du könntest dein Programm per runas starten, und spezielle Parameter übergeben, dass es unsichtbar nur diese Aufgaben erledigt, und sich dann beendet.

LG pdelvo

07.03.2013 - 15:14 Uhr

Vielleicht darf ein Webbrowser nur bei der Interaktion eines Nutzers ausgeführt werden.

03.03.2013 - 00:46 Uhr

Du kannst den Drop Down in ein Partial View packen.

LG pdelvo

27.02.2013 - 17:08 Uhr

Noch eine Idee: Die Server schreiben bestimmt ihre Logeinträge in eine Datei. Und das sollte sich ja auslesen lassen

27.02.2013 - 16:13 Uhr

Du kannst versuchen den StandardError auszulesen. Vielleicht gibt das Spiel darüber die Konsole auch noch aus. Ansonsten kannst du eigentlich nur noch das Internet durchforsten, ob man den Server mit einem kommandozeilenschallter dazu bringen kann die Logs darüber auszugeben.

23.02.2013 - 12:49 Uhr

Dein Vorgehen finde ich nicht besonders Benutzerfreundlich. Besser fände ich, wenn das Captcha ausgelöst wird, wenn du oft, und zu schnell(!) Daten abgefragt werden. Dazu würde ich die IP als Anhaltspunkt nehmen.

LG pdelvo

21.02.2013 - 16:12 Uhr

Erster Schritt: Kein Feld benutzen, sondern ein Property.

Dann kannst du dieses in der basisklasse als virtual implementieren, und dann in der abgeleiteten Klasse überschreiben und entsprechend so implementieren, das ein statisches Feld zum Speichern genutzt wird.

LG pdelvo

17.02.2013 - 23:10 Uhr

Gefallen dir die Frameworkmethoden nicht?

LG pdelvo

17.02.2013 - 16:51 Uhr

Man kann den Mono Connector nehmen, bei dem man nur eine dll mitgeben muss.

16.02.2013 - 20:59 Uhr

Nimm den MySql Connector von der mysql Seite. Wenn du die Mono Version nutzt brauchst du gar nichts installieren.

LG pdelvo

08.02.2013 - 14:40 Uhr

Du könntest die gui vor dem Insert generieren, und dann dem insert mit übergeben. Dann hättest du sie. Eine andere Möglichkeit kenne ich nicht

LG pdelvo

31.01.2013 - 16:41 Uhr

Hallo!

Du kannst versuchen viele Daten zusammen in einer Transaction zu übertragen.

LG pdelvo

24.01.2013 - 19:41 Uhr

Ich finde es dennoch ziemlich sinnfrei. Wenn man tatsächlich solch eine Methode braucht sollte man sich das Delegate meiner Meinung nach selbst definieren und die parameter vernünftig benennen. Sonst blickt da doch keiner durch.

LG pdelvo

24.01.2013 - 17:12 Uhr

Ich glaube an dieser Stelle kann man mal die Memory Mapped Files erwähnen. Damit kannst du dann die Entscheidung, was im Ram, und was nur im Hauptspeicher liegt dem Betriebssystem überlassen.

LG pdelvo

17.01.2013 - 19:14 Uhr

Du könntest in einem hidden feld eine zufällige zahl speichern in diesem Formular. Dann kannst du damit überprüfen, ob ein Formular mehrfach gesendet wurde.

LG pdelvo

17.01.2013 - 15:33 Uhr

Mit NAudia hast du sehr viele möglichkeiten wenn du mit Audiodaten arbeiten willst, auch wenn deine Anforderungen, wie herbivore sagte auch ohne recht einfach zu machen sind

16.01.2013 - 22:31 Uhr

Der Wikipediaartikel gibt aufschluss darüber wie man dort das Ende erkennen kann.

LG pdelvo

16.01.2013 - 22:25 Uhr

Ist die Transfer methode "chunked"?

LG pdelvo

16.01.2013 - 15:10 Uhr

Wie sieht denn deine Lösung aus? Damit andere mit dem selben Problem auch geholfen wird wenn sie diesen Thread hier finden.

LG pdelvo

10.01.2013 - 18:23 Uhr

Was ist denn die Fehlermeldung? Was funktioniert nicht?

08.01.2013 - 16:45 Uhr

Guck doch mal in die Event Logs. Wenn ein .net Fehler aufgetreten ist sollte dieser dort drin stehen.

LG pdelvo

03.01.2013 - 14:22 Uhr

Ich muss auch sagen das ich von dem Ladezeiten aktuell eher weniger begeistert bin. Visual Studio liegt bei mir auf einer SSD, braucht aber zum starten 8 Sekunden, und zum laden einer kleinen Solution mit 3 Projekten nochmal 10 Sekunden. Habe an Extensions Resharper und die ProductivityPower Tools installiert.

LG pdelvo

01.01.2013 - 21:34 Uhr

Hallo!

Eine Sache die ich sehr praktisch finden würde ist, einen Link zur Startseite des Forums in diese Seite einzubauen.

Hintergrund: Ich habe als Lesezeichen einen Link zu den neusten Forenbeiträgen (http://www.mycsharp.de/wbb2/search.php?action=new). Und wenn es nichts neues gibt bekomme ich nur zwei Zeilen Text mit Link zur letzten aufgerufenen Seite. Wenn man das allerdings als Lesezeichen hat ist es sehr umständlich dann ins Forum zu gelangen.

Ein einfacher Link zur Startseite auf dieser Seite wäre sehr praktisch.

Lieben Gruß

pdelvo

30.12.2012 - 10:44 Uhr

Du solltest die CreateSchemaAsync methode so abändern, dass sie einen Task zurüpckgibt(Also auch die Basisklasse ändern, oder aber eine neue Methode schreiben anstatt zu überschreiben). Auch so macht es keinen Sinn CreateSchemaAsync nochmal in einem anderen Thread aufzurufen. Die Task.WaitAll Methode hat den großen Nachteil, das sie den aktuellen Thread anhällt, und damit die Ausführung stoppt. Besser wäre es, wenn du stattdessen ein WhenAll verwendest, und dort dann wieder ein await nutzt. So hast du keinen wartenden Thread mehr.
Demnach würde ich die Initialisierung so durchführen:


await Task.WhenAll(Tables.Select(a => a.CreateSchemaAsync(this)).ToArray());

Und CreateSchemaAsync anstatt void Tast zurückgeben lassen, oder eben eine neue Methode erstellen, die einen Task zurückgibt.

16.12.2012 - 14:43 Uhr

Vielleicht geben die Properties SelectionStart und SelectionLength einen Hinweis darauf wo sich etwas geändert hat.

Lieben Gruß
Dennis

11.12.2012 - 22:11 Uhr

Du kannst ja mit der Summenformeln die Summe der Zahlen von 1 bis n1 ausrechnen, und davon die Summe der zahlen von 1 - n2 abziehen

10.12.2012 - 15:54 Uhr

Als Windows 8 App hast du nur einen sehr eingeschränkten Zugriff auf das Dateisystem. Du kannst nur auf bestimmte ordner nur für deine App zugreifen, oder auf Dateien die der Nutzer explizit angibt (Der Dialog um eine Datei auszuwählen).

LG pdelvo

09.12.2012 - 18:10 Uhr

Ich habe es genutzt als es noch in der Testphase war. Ansich ne schöne Sache, aber der ewige Zwang online arbeiten zu müssen hat mich dann zu git gebraucht

09.12.2012 - 13:53 Uhr

AnkhSvn habe ich früher benutzt. Fand es wirklich gut. Mittlerweile bin ich aber auf Git umgestiegen.

Soll das Repository Open Source oder Closed Source gehostet werden? Für Open Source ist github mein absoluter Favorit. Dann müsstest du aber git anstatt svn nutzen. Wenn du auf Github closed source Projekte hosten willst muss du dann allerdings bezahlen. Ein Speicherlimit gibt es bei Github nicht.

An kostenlosen Closed Source hosting würde mir noch https://bitbucket.org/ einfallen. Selbst habe ich aber keine Erfahrung damit. Ob es dort ein Speicherlimit gibt weiss ich nicht.

Warum hast du so große Repositories? 500mb sind ja mehr als das komplette Repository des Linux Kernels. Hast du da haufenweise Bilder drin?

07.12.2012 - 18:23 Uhr

Du könntest eine Action, Action<t> und Func<T> bereitstellen.

Beispiel:



TResult MyMethod<TResult, TParameter>(Func<TParameter, TResult> function, TParameter value)
{
    //...
    return function(value);
}

//...

var result = MyMethod<string, string>(a=> MyCrazyMethod(p1, p2, p3, p4, ..., p99), test);


04.12.2012 - 16:06 Uhr

Ist die Klasse statisch, oder hast du irgendwo eine Instanz? du kannst dann entweder mit{x:Static} oder halt normalen bindings arbeiten.

Lg Dennis

29.11.2012 - 23:34 Uhr

Warum mchst du aus dem Property überhaupt einen string und nicht direkt einen double?

29.11.2012 - 18:56 Uhr

Wenn man dem Store nicht vertraut kann man auch selbst ein Bezahlsystem nutzen, ohne von Microsoft abhängig zu sein. Und dann auch 100% des Gewinnes nehmen.

LG pdelvo

28.11.2012 - 21:38 Uhr

[...]und Software für WP7 ist nicht auf WP8 lauffähig.

Wo hast du denn diese Fehlinformation her?

Mit dieser Version soll es nicht möglich sein für Windows8 entwickelte Apps zu verwenden.

Es empfielt sich die Quelle von Chip zu lesen. Der Redakteur hat definitiv Nachhilfe in Englisch nötig gehabt.

Once Windows Blue is released, the Windows SDK will be updated to support the new release and Microsoft will stop accepting apps that are built specifically for Windows 8, pushing developers to create apps for Blue. Windows 8 apps will continue to run on Blue despite the planned SDK changes.

27.11.2012 - 17:05 Uhr

Wenn die Datenbank das 10GB Limit nicht übersteigt sehe ich keinen Grund nicht die Express Version zu nutzen. Die kann auch problemlos kommerziell eingesetzt werden