Book Image

The C# Workshop

By : Jason Hales, Almantas Karpavicius, Mateus Viegas
4 (2)
Book Image

The C# Workshop

4 (2)
By: Jason Hales, Almantas Karpavicius, Mateus Viegas

Overview of this book

C# is a powerful, versatile language that can unlock a variety of career paths. But, as with any programming language, learning C# can be a challenging process. With a wide range of different resources available, it’s difficult to know where to start. That's where The C# Workshop comes in. Written and reviewed by industry experts, it provides a fast-paced, supportive learning experience that will quickly get you writing C# code and building applications. Unlike other software development books that focus on dry, technical explanations of the underlying theory, this Workshop cuts through the noise and uses engaging examples to help you understand how each concept is applied in the real world. As you work through the book, you'll tackle realistic exercises that simulate the type of problems that software developers work on every day. These mini-projects include building a random-number guessing game, using the publisher-subscriber model to design a web file downloader, creating a to-do list using Razor Pages, generating images from the Fibonacci sequence using async/await tasks, and developing a temperature unit conversion app which you will then deploy to a production server. By the end of this book, you'll have the knowledge, skills, and confidence to advance your career and tackle your own ambitious projects with C#.
Table of Contents (10 chapters)

Asynchronous Programming

So far, you have created tasks and used the static Task factory methods to run and coordinate such tasks. In earlier versions of C#, these were the only ways to create tasks.

The C# language now provides the async and await keywords to mark a method as asynchronous. This is the preferred way to run asynchronous code. Using the async/await style results in less code and the code that is created is generally easier to grasp and therefore easier to maintain.

Note

You may often find that legacy concurrent-enabled applications were originally created using Task.Factory.StartNew methods are subsequently updated to use the equivalent Task.Run methods or are updated directly to the async/await style.

The async keyword indicates that the method will return to the caller before it has had a chance to complete its operations, therefore the caller should wait for it to complete at some point in time.

Adding the async keyword to a method instructs the...