Mais conteúdo relacionado
Semelhante a rioinfo2012 (20)
rioinfo2012
- 8. WINDOWS 8
WINRT
NÃO BLOQUEIE A
THREAD DA UI
- 22. Func<string> ler = () =>
File.ReadAllText(@"C:test.txt");
var handle = ler.BeginInvoke(null, null);
//qualquer outro código
var resultado = ler.EndInvoke(handle);
- 23. var req = WebRequest.Create("http://google.com");
var handle = req.BeginGetRequestStream(null, null);
//qualquer código
var stream = req.EndGetRequestStream(handle);
- 28. var files = new[] {"file1.txt", "file2.txt"};
var contents = string.Join("", files
.AsParallel()
.Select(File.ReadAllText)
.ToArray());
- 31. var task = Task.Run(() =>
File.ReadAllText(@"C:test.txt"));
//qualquer outro código
var resultado = task.Result;
- 36. var task = Task.Run(() => File.ReadAllText(@"test.txt"));
task.ContinueWith(x => Console.WriteLine(x.Result));
- 37. var task = Task.Run(() => File.ReadAllText(@"test.txt"));
Console.WriteLine(await task);
- 38. static async Task<int> GoogleMaisYahoo()
{
var http = new HttpClient();
var google = http.GetStringAsync("http://google.com");
var yahoo = http.GetStringAsync("http://yahoo.com");
return (await google).Length + (await yahoo).Length;
}
static void Main(string[] args)
{
var task = GooglePlusYahoo();
//qualquer código
Console.WriteLine(task.Result);
Console.ReadLine();
}
- 39. static Task<int> GooglePlusYahoo()
{
var http = new HttpClient();
var google = http.GetStringAsync("http://google.com");
var yahoo = http.GetStringAsync("http://yahoo.com");
return Task.WhenAll(google, yahoo)
.ContinueWith(x =>
x.Result[0].Length + x.Result[1].Length);
}
static void Main(string[] args)
{
var task = GooglePlusYahoo();
//qualquer código
Console.WriteLine(task.Result);
Console.ReadLine();
}
- 40. .NET 4.5
ASYNC
AWAIT
SEM THREADS
SEM RACE CONDITIONS
MUITO MENOS COMPLICADO
- 43. private async void button1_Click(object sender, EventArgs e)
{
var http = new HttpClient();
page.Text = "Loading...";
page.Text = await http.GetStringAsync("http://google.com");
}
- 44. MESMA THREAD QUE CHAMOU O MÉTODO
POTENCIALMENTE NOVA THREAD
private async void button1_Click(object sender, EventArgs e)
{
var http = new HttpClient();
page.Text = "Loading...";
page.Text = await http.GetStringAsync("http://google.com");
}
- 52. MÉTODOS DA BCL QUE
TERMINAM COM "ASYNC",
GERALMENTE USAM IOCP
FileStream#ReadAsync
HttpClient#GetStringAsync
Socket#SendAsync