Nerds2Nerds

Епизод 7


Listen Later

Епизод 7 на Nerds2Nerds записан на 28.06.2013 с основна тема асинхронно програмиране с yield и async/await.

Част 1 – обзор на новините

 

Директен линк към част 1 (mp3) (ogg)

00:50 – наши математици с 6 медала от балканската олимпиада

03:10 – Google Maps вече без облаци
05:10 – Google не искат да трият информация за потребители
15:30 – Аndroid 4.3?
15:50 – Google подготвят гейм конзола базирана на Android
16:50 – колко са космическите станции? Може би две?
18:30 – вграждат софтуер против принтирането на оръжия в 3D принтерите
20:50 – акциите на Apple паднаха под $400
23:40 – Intel имат технология, която позволява да разбират за какво си мислиш в момента
24:50 – Firefox 22 вече е налична
26:00 – Google лансират нов мрежов протокол
30:10 – Какво се случва, ако пиете Кока-Кола вместо вода
33:40 – Kinect на Xbox One няма да е съвместим с PC
38:30 – Конференцията Build
Oracle продукти в Azure
Новости в Azure
Windows 8.1
Internet Explorer 11 с WebGL и SPDY

Част 2 – Асинхронно програмиране с yield и async/await

 

Директен линк към част 2 (mp3) (ogg)

Синхронният код, който обсъждаме в част 2:

public static void Test()
{
for (int i = 0; i < 10; i++)
{
try
{
int firstCallResult = GetIntFromService();
string secondCallResult = GetStringFromService(firstCallResult);
Console.WriteLine("Result: " + secondCallResult);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}

Примерна асинхронна версия с callbacks:

public static void Test(int iteration)
{
GetIntFromServiceAsync()
.ContinueWith(t =>
{
if (t.Exception == null)
{
int firstCallResult = t.Result;
GetStringFromServiceAsync(firstCallResult)
.ContinueWith(t2 =>
{
if (t2.Exception == null)
{
string secondCallResult = t2.Result;
Console.WriteLine("Result: " + secondCallResult);
Continue(iteration);
}
else
{
Console.WriteLine("Error: " + t.Exception.Message);
Continue(iteration);
}
});
}
else
{
Console.WriteLine("Error: " + t.Exception.Message);
Continue(iteration);
}
});
}
public static void Continue(int iteration)
{
iteration++;
if (iteration < 10)
{
Test(iteration);
}
}

Асинхронна версия с async/await:

public async static Task Test()
{
for (int i = 0; i < 10; i++)
{
try
{
int firstCallResult = await GetIntFromServiceAsync();
string secondCallResult = await GetStringFromServiceAsync(firstCallResult);
Console.WriteLine("Result: " + secondCallResult);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}

Презентация за използване на yield за асинхронно програмиране:

http://channel9.msdn.com/blogs/charles/jeffrey-richter-and-his-asyncenumerator - изисква Silverlight за да се гледа в браузъра, но може да се свали файл.
Допълнителна информация за async/await - http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx

Обща информация за генераторите - http://en.wikipedia.org/wiki/Generator_(computer_programming)

...more
View all episodesView all episodes
Download on the App Store

Nerds2NerdsBy Nerds2Nerds


More shows like Nerds2Nerds

View all
Говори ѝнтернет by Владимир Петков и Еленко Еленков

Говори ѝнтернет

14 Listeners

Ratio Podcast by Ratio Podcast

Ratio Podcast

2 Listeners

Дроб и чѝли by Валерия Ангелова и Йордан Жечев

Дроб и чѝли

6 Listeners

Капитал Подкаст - Гласът на Капитал by Капитал

Капитал Подкаст - Гласът на Капитал

9 Listeners

Телевизия по радиото by Анна Цолова, Дарина Сарелска, Миролюба Бенатова

Телевизия по радиото

2 Listeners