Skip to content

Instantly share code, notes, and snippets.

View jesuscampos's full-sized avatar
🏠
Working from home

Jesús jesuscampos

🏠
Working from home
View GitHub Profile
public interface MyInterface
{
Task<int> GetMagicNumber();
}
public class MyClass : MyInterface
{
public Task<int> GetMagicNumber()
{
return Task.FromResult(3);
private async Task<string> DoWorkAsync()
{
HttpClient client = new HttpClient();
string result1 = await client.GetStringAsync(url1);
// ...
string result2 = await client.GetStringAsync(url2);
// ...
string result3 = await client.GetStringAsync(url3);
// ...
return $"Results: {result1}{result2}{result3}";
private async Task<string> DoWorkAsync()
{
HttpClient client = new HttpClient();
string result = await client.GetStringAsync(url);
return $"Result: {result}";
}
private async Task DoWorkAsync()
{
// Comienza a ejecutarse como un método síncrono
HttpClient client = new HttpClient();
// await [Task]: se inicia la operación asíncrona y se suspende
// la ejecución del resto del código
await client.GetStringAsync(url);
// resto del código
// ... se ejecutará cuando la tarea asíncrona se complete
// ...
public class HomeController: Controller
{
public IActionResult Get()
{
var result = DoWork(100);
return View(result);
}
public long DoWork(int n)
{
/// <summary>
/// Este método está vinculado a la CPU. Si se usa desde una
/// UI utilizar Task.Run para no bloquear la interfaz
/// <summary>
void DoWork()
{
//... CPU-Bound work
}
public long DoWork(int n)
{
// CPU-Bound work
// ...
return fibonacciNumber;
}
public Task<long> DoWorkAsync(n)
{
return Task.Run(() => DoWork(n));
@jesuscampos
jesuscampos / Async3.cs
Created October 12, 2018 16:46
Async3
public class HomeController: Controller
{
public IActionResult GetAsync()
{
var result = DoWork(100);
return View(result);
}
}
@jesuscampos
jesuscampos / Async2.cs
Last active October 13, 2018 15:18
Async
public class HomeController: Controller
{
public async Task<IActionResult> GetAsync()
{
var result = await DoWork(100);
return View(result);
}
public Task<long> DoWork(int n)
{
@jesuscampos
jesuscampos / Async.cs
Last active October 12, 2018 20:16
Async await
public long DoWork(int n)
{
// CPU-Bound work
// ...
return fibonacciNumber;
}