Category Archives: C# Threads / TPL
Async await
Wie funktionier await? Ein Thread ist wie eine Pipeline, die einen bestimmten Code in die CPU gibt. Mal angenommen Thread 1 (Ui Thread) will etwas downloaden und dann auf der UI darstellen. Während des Http Requests ist die Ui gesperrt. Weil der Thread 1 darauf wartet, bis der Server geantwortet hat. Mit await wird ein […]
Aus einer anderen Klasse, aus einem anderen Thread in MainWindow schreiben
Möchte man aus einer anderen Klasse, aus einem anderen Thread etwas in die Mainklasse Steuerelemente schreiben, stößt man auf 2 Probleme: 1. Man kann aus Thread 2 nicht in Thread 1 schreiben 2. Man kann nicht, ohne ein Objekt angelegt zu haben nicht in die Steuerelemente schreiben. Abhilfe schafft ein kleiner Trick. MainWindow.cs:
1 2 3 4 5 6 |
internal static MainWindow main; internal object Status { get { return lstInfo.Items.CurrentItem; } set { Dispatcher.Invoke(new Action(() => { lstInfo.Items.Add(value); })); } } |
1 2 3 4 5 |
public MainWindow() { InitializeComponent(); main = this; } |
[…]
Backgroundworker
Wenn man aus einem Thread heraus eine Zeitaufwändige Operation durchführt, kann dies dazu führen, dass man den Eindruck bekommt, das Fenster wäre eingefroren. Der Grund ist ganz einfach, weil diese Aufgabe im ersten Thread stattfindet und solange dauert, bis es fertig ist. Jetzt stellt .Net den Threading Namespace zur Verfügung womit man für solche Aufgaben einen […]
Login