@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
async Task ReadDataFromUrl(string url)
{
WebClient wc = new WebClient();
byte[] result = await wc.DownloadDataTaskAsync(url);
string data = Encoding.ASCII.GetString(result);
LoadData(data);
}
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
async Task ReadDataFromUrl(string url)
{
WebClient wc = new WebClient();
byte[] result = await wc.DownloadDataTaskAsync(url);
string data = Encoding.ASCII.GetString(result);
LoadData(data);
}
Thread 1
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
async Task ReadDataFromUrl(string url)
{
WebClient wc = new WebClient();
byte[] result = await wc.DownloadDataTaskAsync(url);
string data = Encoding.ASCII.GetString(result);
LoadData(data);
}
Thread 2*
*Can be any thread other than Thread 1
e.g. Thread 32
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
async Task ReadDataFromUrl(string url)
{
WebClient wc = new WebClient();
byte[] result = await wc.DownloadDataTaskAsync(url);
string data = Encoding.ASCII.GetString(result);
LoadData(data);
}
Thread 1
Correcting Common .NET Mistakes in Async Await .pptx
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
async Task ReadDataFromUrl(string url)
{
WebClient wc = new WebClient();
byte[] result = await wc.DownloadDataTaskAsync(url);
string data = Encoding.ASCII.GetString(result);
LoadData(data);
}
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
async Task ReadDataFromUrl(string url)
{
WebClient wc = new WebClient();
byte[] result = await wc.DownloadDataTaskAsync(url);
string data = Encoding.ASCII.GetString(result);
LoadData(data);
}
private sealed class <ReadDataFromUrl>d_1 : IAsyncStateMachine
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
async Task ReadDataFromUrl(string url)
{
WebClient wc = new WebClient();
byte[] result = await wc.DownloadDataTaskAsync(url);
string data = Encoding.ASCII.GetString(result);
LoadData(data);
}
private string <data>5_3;
private byte[] <result>5_2;
private WebClient <wc>5_1;
public string url;
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
async Task ReadDataFromUrl(string url)
{
WebClient wc = new WebClient();
byte[] result = await wc.DownloadDataTaskAsync(url);
string data = Encoding.ASCII.GetString(result);
LoadData(data);
}
private void MoveNext();
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
public void MoveNext()
{
uint num = (uint)this.$PC;
this.$PC = -1;
try {
switch (num) {
case 0:
this.<wc>__0 = new WebClient();
this.$awaiter0 = this.<wc>__0.DownloadDataTaskAsync(this.url).GetAwaiter();
this.$PC = 1;
...
return;
break;
case 1:
this.<result>__1 = this.$awaiter0.GetResult();
this.<data>__2 = Encoding.ASCII.GetString(this.<result>__1);
this.$this.LoadData(this.<data>__2);
break;
default:
return;
}
}
catch (Exception exception) { ... }
this.$PC = -1;
this.$builder.SetResult();
}
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
public void MoveNext()
{
uint num = (uint)this.$PC;
this.$PC = -1;
try {
switch (num) {
case 0:
this.<wc>__0 = new WebClient();
this.$awaiter0 = this.<wc>__0.DownloadDataTaskAsync(this.url).GetAwaiter();
this.$PC = 1;
...
return;
break;
case 1:
this.<result>__1 = this.$awaiter0.GetResult();
this.<data>__2 = Encoding.ASCII.GetString(this.<result>__1);
this.$this.LoadData(this.<data>__2);
break;
default:
return;
}
}
catch (Exception exception) { ... }
this.$PC = -1;
this.$builder.SetResult();
}
case 0:
this.<wc>__0 = new WebClient();
this.$awaiter0 = this.<wc>__0.DownloadDataTaskAsync(this.url).GetAwaiter();
this.$PC = 1;
...
return;
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
public void MoveNext()
{
uint num = (uint)this.$PC;
this.$PC = -1;
try {
switch (num) {
case 0:
this.<wc>__0 = new WebClient();
this.$awaiter0 = this.<wc>__0.DownloadDataTaskAsync(this.url).GetAwaiter();
this.$PC = 1;
...
return;
break;
case 1:
this.<result>__1 = this.$awaiter0.GetResult();
this.<data>__2 = Encoding.ASCII.GetString(this.<result>__1);
this.$this.LoadData(this.<data>__2);
break;
default:
return;
}
}
catch (Exception exception) { ... }
this.$PC = -1;
this.$builder.SetResult();
}
case 1:
this.<result>__1 = this.$awaiter0.GetResult();
this.<data>__2 = Encoding.ASCII.GetString(this.<result>__1);
this.$this.LoadData(this.<data>__2);
break;
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
public void MoveNext()
{
uint num = (uint)this.$PC;
this.$PC = -1;
try {
switch (num) {
case 0:
this.<wc>__0 = new WebClient();
this.$awaiter0 = this.<wc>__0.DownloadDataTaskAsync(this.url).GetAwaiter();
this.$PC = 1;
...
return;
break;
case 1:
this.<result>__1 = this.$awaiter0.GetResult();
this.<data>__2 = Encoding.ASCII.GetString(this.<result>__1);
this.$this.LoadData(this.<data>__2);
break;
default:
return;
}
}
catch (Exception exception) { ... }
this.$PC = -1;
this.$builder.SetResult();
}
try {
catch (Exception exception) { . . . }
Correcting Common .NET Mistakes in Async Await .pptx
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
Correcting Common .NET Mistakes in Async Await .pptx
Correcting Common .NET Mistakes in Async Await .pptx
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
https://codetraveler.io/kcdc-async-await/
@TheCodeTraveler https://codetraveler.io/kcdc-async-await/
https://codetraveler.io/kcdc-async-await/

More Related Content

PPTX
Correcting Common Async/Await Mistakes in .NET
PPTX
Correcting Common .NET Async/Await Mistakes
PPTX
Correcting Common Async Await Mistakes in .NET
PDF
Non Blocking I/O for Everyone with RxJava
PDF
Asynchronní programování
PPTX
分散式系統
PPT
Async programming on NET
PPTX
Managing State in React Apps with RxJS by James Wright at FrontCon 2019
Correcting Common Async/Await Mistakes in .NET
Correcting Common .NET Async/Await Mistakes
Correcting Common Async Await Mistakes in .NET
Non Blocking I/O for Everyone with RxJava
Asynchronní programování
分散式系統
Async programming on NET
Managing State in React Apps with RxJS by James Wright at FrontCon 2019

Similar to Correcting Common .NET Mistakes in Async Await .pptx (20)

PPT
Expert JavaScript tricks of the masters
PDF
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
PDF
GDG Jakarta Meetup - Streaming Analytics With Apache Beam
PPTX
C#을 이용한 task 병렬화와 비동기 패턴
PPTX
13 networking, mobile services, and authentication
PDF
XQuery Rocks
PPTX
Bare-knuckle web development
PDF
Tomcat连接池配置方法V2.1
PPTX
Reactive programming every day
PDF
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
PDF
Arduino and the real time web
PPTX
Async Best Practices
PDF
Speed up your Web applications with HTML5 WebSockets
PDF
Qt Network Explained (Portuguese)
PDF
Reactive programming on Android
PDF
Concept of BlockChain & Decentralized Application
PDF
Node.js server-side rendering
DOCX
assigemt calculater.docx
PDF
Server Side Swift: Vapor
PPT
JDBC for CSQL Database
Expert JavaScript tricks of the masters
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
GDG Jakarta Meetup - Streaming Analytics With Apache Beam
C#을 이용한 task 병렬화와 비동기 패턴
13 networking, mobile services, and authentication
XQuery Rocks
Bare-knuckle web development
Tomcat连接池配置方法V2.1
Reactive programming every day
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Belgium 2019
Arduino and the real time web
Async Best Practices
Speed up your Web applications with HTML5 WebSockets
Qt Network Explained (Portuguese)
Reactive programming on Android
Concept of BlockChain & Decentralized Application
Node.js server-side rendering
assigemt calculater.docx
Server Side Swift: Vapor
JDBC for CSQL Database
Ad

More from Brandon Minnick, MBA (20)

PPTX
Choosing The Best AWS Service For Your Website + API.pptx
PPTX
Introduction to Serverless with AWS Lambda in C#.pptx
PPTX
Correcting Common Mistakes, AsyncAwait.pptx
PPTX
The .NET MAUI Community Toolkits.pptx
PPTX
Introduction to Serverless with AWS Lambda in C#.pptx
PPTX
AWS Toolkit.pptx
PPTX
Building GraphQL APIs in C#.pptx
PPTX
Building MAUI UIs in C#.pptx
PPTX
Creating Apps with .NET MAUI.pptx
PPTX
Building GraphQL APIs in C#.pptx
PPTX
Introduction to Serverless with AWS Lambda in C#.pptx
PPTX
Consuming GraphQL APIs in C#.pptx
PPTX
Building GraphQL API in C#.pptx
PPTX
Introducing .NET MAUI Toolkit.pptx
PPTX
Building MAUI UI in C#.pptx
PPTX
Building GraphQL API in C#.pptx
PPTX
Creating Apps with .NET MAUI
PPTX
Creating Apps With .NET MAUI for iOS, Android, macOS + Windows
PPTX
Creating Xamarin.Forms UIs is C#
PPTX
The Future of Xamarin
Choosing The Best AWS Service For Your Website + API.pptx
Introduction to Serverless with AWS Lambda in C#.pptx
Correcting Common Mistakes, AsyncAwait.pptx
The .NET MAUI Community Toolkits.pptx
Introduction to Serverless with AWS Lambda in C#.pptx
AWS Toolkit.pptx
Building GraphQL APIs in C#.pptx
Building MAUI UIs in C#.pptx
Creating Apps with .NET MAUI.pptx
Building GraphQL APIs in C#.pptx
Introduction to Serverless with AWS Lambda in C#.pptx
Consuming GraphQL APIs in C#.pptx
Building GraphQL API in C#.pptx
Introducing .NET MAUI Toolkit.pptx
Building MAUI UI in C#.pptx
Building GraphQL API in C#.pptx
Creating Apps with .NET MAUI
Creating Apps With .NET MAUI for iOS, Android, macOS + Windows
Creating Xamarin.Forms UIs is C#
The Future of Xamarin
Ad

Recently uploaded (20)

PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PPTX
observCloud-Native Containerability and monitoring.pptx
PPTX
Web Crawler for Trend Tracking Gen Z Insights.pptx
DOCX
search engine optimization ppt fir known well about this
PDF
A novel scalable deep ensemble learning framework for big data classification...
PPTX
Tartificialntelligence_presentation.pptx
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
August Patch Tuesday
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Five Habits of High-Impact Board Members
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
STKI Israel Market Study 2025 version august
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Getting Started with Data Integration: FME Form 101
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
1 - Historical Antecedents, Social Consideration.pdf
Getting started with AI Agents and Multi-Agent Systems
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
observCloud-Native Containerability and monitoring.pptx
Web Crawler for Trend Tracking Gen Z Insights.pptx
search engine optimization ppt fir known well about this
A novel scalable deep ensemble learning framework for big data classification...
Tartificialntelligence_presentation.pptx
WOOl fibre morphology and structure.pdf for textiles
August Patch Tuesday
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Five Habits of High-Impact Board Members
sustainability-14-14877-v2.pddhzftheheeeee
STKI Israel Market Study 2025 version august
A comparative study of natural language inference in Swahili using monolingua...
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Getting Started with Data Integration: FME Form 101
Zenith AI: Advanced Artificial Intelligence
From MVP to Full-Scale Product A Startup’s Software Journey.pdf

Correcting Common .NET Mistakes in Async Await .pptx

Editor's Notes

  • #3: Every time we add the `async` keyword, the compiler creates a new class. Each class increases our app size by appx. 100 bytes
  • #9: Every time we add the `async` keyword, the compiler creates a new class. Each class increases our app size by appx. 100 bytes
  • #10: Every time we add the `async` keyword, the compiler creates a new class. Each class increases our app size by appx. 100 bytes