piątek, 29 października 2010

Operacje asynchroniczne, czyli C# 5.0

Każda kolejna wersja platformy .NET wprowadza coraz "fajniejsze" ułatwienia dla programisty. I chyba trudno się z tym stwierdzeniem nie zgodzić. Zaczęło się od anonimowych delegatów. Później bardziej funkcyjne podejście i LINQ. W .NET 4.0 wprowadzono słowo kluczowe dynamic. Teraz przyszedł czas na lepsze wsparcie dla operacji asynchronicznych. Od wczoraj dostępny jest do pobrania Visual Studio Async CTP, który do C# i VB wprowadza dwa nowe słowa kluczowe await oraz async. Dzięki nim można w prosty sposób określić które metody mają zostać wykonane asynchronicznie. Natomiast cała otoczka którą w klasycznym podejściu musiał napisać programista wygeneruje się automatycznie w czasie kompilacji. Czyż to nie piękne? Dla przykładu:
public LongCalcResult LongCalc()
{
    //jakaś dłuższa operacja
    return LongCalcResult.Success;
}

public async void button1_Click(object sender, EventArgs e)
{
    LongCalcResult result = await TaskEx.Run<LongCalcResult>(() => LongCalc());
    //modyfikacja UI względem wyniku asynchronicznej operacji
}
Szczerze mówiąc po pojawieniu się dynamic czułem pewien niedosyt nowości. Może to wynikać z tego, że nie miałem sposobności do sensownego wykorzystania jego możliwości. Fakt jednak jest taki, że wersja 4.0 nie dostarczyła takiego skoku zmian co wersja 3.5. Tym razem może być inaczej ;]

UPDATE Jednak moje wyobrażenie o dodatku było nieco mylne. Zmianom uległ jedynie kod źródłowy, który teraz działa poprawnie tak jak od samego początku powinien.

Brak komentarzy:

Prześlij komentarz