• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

[C#] Diverse Fragen zu eigenem Projekt bzgl. Threading/Tasks und WPF

Nesch385

Neu angemeldet

Registriert
14 Juli 2013
Beiträge
73
Guten Tag NGB,

ich bin momentan Informatik Student im dritten Semester und da ich mich in den Semesterferien langweile, wollte ich ein ewig altes Projekt von mir aus Java in C# portieren. Das ganze soll später einmal ein Programm werden, um diverse Sortieralgorithmen zu visualisieren, aber da ich erst vor ein paar Tangen angefangen habe und direkt auf die folgenden Probleme gestoßen bin, ist das natürlich nicht ansatzweise fertig.

Wie dem auch sei, seit gestern sind mir bereits Tonnen von Fragen in den Kopf gekommen, die ich nach einiger Recherche auch nicht selbst beantworten konnte. Ich hoffe jemand von Euch kann mir da weiterhelfen.

Zuerst einmal habe ich hier den Link zu einem GitRepo, damit Ihr Euch einen Gesamtüberblick verschaffen könnt: https://github.com/hurt-/SortVisualizer

Nun zu meinen Fragen:

1. In der Java Version konnte man über die deprecated Funktionen .suspend und .resume eines Threads einen Sortieralgorithmus pausieren und wiederaufnehmen. Da ich das Feature auch für die neue Version geplant habe, aber nicht auf die deprecated Funktionen zurückgreifen möchte, da überall davon abgeraten wird dies zu tun, hab ich jetzt so einige Schwierigkeiten. Bisher setze ich darauf, dies mit System.Threading.Thread zu lösen, wobei ein ManualResetEvent dazu verwendet werden soll, das Pausieren und Wiederaufnehmen zu gewährleisten.
Jetzt habe ich allerdings das Problem, dass ich die Zeit die ein Algorithmus zum sortieren braucht zurückgeben möchte. Ich hab bisher viel darüber gelesen, dass in .NET 4.5 paralleles Programmieren hauptsächlich mit Tasks implementiert wird und frage mich nun, wie ich meinen bisherigen Code so umbauen kann, dass ich 1. die "Elapsed" Zeit ordentlich returnen kann, sodass der Aufrufer mittels "await" auf den Wert warten kann. 2. Wie ich einen Task pausieren und wiederaufnehmen kann.
Ich habe hier eine Frage dazu auf StackOverflow gefunden, aber leider werde ich daraus überhaupt nicht schlau. Kann mir da jemand weiterhelfen?

2. Wie genau verhindere ich, dass mein "RepaintTicker" zum erneuten Aufruf des "DrawElement" des Fensters, das Fenster übergeben bekommen muss? Auch dazu finde ich hier eine Frage auf StackOverflow, werde daraus aber auch nicht recht schlau, da die erste Antwort bereits 6 verschiedene Ansätze liefert und ich nicht weiß, welchen genau ich davon nun auf mein Szenario übertragen muss.

3. Wie extende ich das UserControl "Canvas" von WPF um die Methoden "DrawElements" und "DrawText" in das Canvas auszulagern? Meiner Meinung nach, würde das dort besser hinpassen als im aktuellen MainWindow.
Zu der Frage hab ich im Internet so direkt gar nichts direktes gefunden, ist das überhaupt möglich so wie ich mir das vorstelle?

Ich hoffe doch sehr, dass sich jemand die Zeit nehmen kann, mir bei den obigen Problemen weiterzuhelfen. :T

Gruß,
Dennis
 
Oben