niedziela, 2 lutego 2014

Szybki strzał: Poniżej jest metoda, która tworzy, uruchamia oraz zwraca obiekt typu Task.

static Task<int> StrToIntSlowlyAsync(string integer)
{
  Func<object int> strToInt = (value =>
  {
    Thread.Sleep(5000); // simulating long operation 
    return int.Parse((string)value);
  });

  return Task<int>.Factory.StartNew(strToInt, integer);
}

Pobranie wartości za pomocą własności Result z obiektu typu Task, spowoduje, że programu zatrzyma się w drugiej linijce, do póki kod w obiekcie typu Task nie wykona się w całości.

static void Main(string[] args)
{
  Task<int> task = StrToIntSlowlyAsync("10");
  int result = task.Result;
  Console.WriteLine(result);
}

0 komentarze :

Prześlij komentarz