woensdag 26 september 2018

Ontlast GUI-thread met async/await

Als je een winforms applicatie meer "responsive" wil maken, dan moet je de GUI-thread niet meer blokkeren.
Een eenvoudig manier om dat te doen is een method die veel tijd opsoepeert async te maken.
Je hebt bijvoorbeeld de volgende code:
using (var repo = new Repository(gitDir))
{ ...

Dit verander je in:
private Task<Repository> GetRepositoryAsync(string gitDir)
{
   var task = Task<Repository>.Factory.StartNew(() => { return new Repository(gitDir); });
   return task;
}

De method waarin je deze nieuwe function aanroept moet voorzien zijn van het async keyword. De aanroep van de function is als volgt:
using (var repo = await GetRepositoryAsync(gitDir))
{ ...

Geen opmerkingen:

Een reactie posten