Multithreading in C# 5.0 Cookbook
eBook - ePub

Multithreading in C# 5.0 Cookbook

  1. 268 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Multithreading in C# 5.0 Cookbook

Book details
Book preview
Table of contents
Citations

About This Book

In Detail

In an age when computer processors are being developed to contain more and more cores, multithreading is a key factor for creating scalable, effective, and responsive applications. If you fail to do it correctly, it can lead to puzzling problems that take a huge amount of time to resolve. Therefore, having a solid understanding of multithreading is a must for the modern application developer.

Multithreading in C# 5.0 Cookbook is an easy-to-understand guide to the most puzzling programming problems. This book will guide you through practical examples dedicated to various aspects of multithreading in C# on Windows and will give you a good basis of practical knowledge which you can then use to program your own scalable and reliable multithreaded applications.

This book guides you through asynchronous and parallel programming from basic examples to practical, real-world solutions to complex problems. You will start from the very beginning, learning what a thread is, and then proceed to learn new concepts based on the information you get from the previous examples.

After describing the basics of threading, you will be able to grasp more advanced concepts like Task Parallel Library and C# asynchronous functions. Then, we move towards parallel programming, starting with basic data structures and gradually progressing to the more advanced patterns. The book concludes with a discussion of the specifics of Windows 8 application programming, giving you a complete understanding of how Windows 8 applications are different and how to program asynchronous applications for Windows 8.

Approach

This book is an easy-to-follow guide full of hands-on examples of real-world multithreading tasks. Each topic is explained and placed in context, and for the more inquisitive readers, there are also more in-depth details of the concepts used.

Who this book is for

If you are a developer or new to multithreaded programming and you are looking for a quick and easy way to get started, then this book is for you. It is assumed that you have some experience in C# and .NET already, and you should also be familiar with computer science and basic algorithms and data structure

Frequently asked questions

Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes, you can access Multithreading in C# 5.0 Cookbook by Eugene Agafonov in PDF and/or ePUB format, as well as other popular books in Computer Science & Programming. We have over one million books available in our catalogue for you to explore.

Information

Year
2013
ISBN
9781849697644
Edition
1

Multithreading in C# 5.0 Cookbook


Table of Contents

Multithreading in C# 5.0 Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Threading Basics
Introduction
Creating a thread in C#
Getting ready
How to do it...
How it works...
Pausing a thread
Getting ready
How to do it...
How it works...
Making a thread wait
Getting ready
How to do it...
How it works...
Aborting a thread
Getting ready
How to do it...
How it works...
Determining a thread state
Getting ready
How to do it...
How it works...
Thread priority
Getting ready
How to do it...
How it works...
Foreground and background threads
Getting ready
How to do it...
How it works...
Passing parameters to a thread
Getting ready
How to do it...
How it works...
There's more…
Locking with a C# lock keyword
Getting ready
How to do it...
How it works...
Locking with a Monitor construct
Getting ready
How to do it...
How it works...
Handling exceptions
Getting ready
How to do it...
How it works...
2. Thread Synchronization
Introduction
Performing basic atomic operations
Getting ready
How to do it...
How it works...
Using the Mutex construct
Getting ready
How to do it...
How it works...
Using the SemaphoreSlim construct
Getting ready
How to do it...
How it works...
There's more…
Using the AutoResetEvent construct
Getting ready
How to do it...
How it works...
Using the ManualResetEventSlim construct
Getting ready
How to do it...
How it works...
There's more…
Using the CountDownEvent construct
Getting ready
How to do it...
How it works...
Using the Barrier construct
Getting ready
How to do it...
How it works...
Using the ReaderWriterLockSlim construct
Getting ready
How to do it...
How it works...
Using the SpinWait construct
Getting ready
How to do it...
How it works...
3. Using a Thread Pool
Introduction
Invoking a delegate on a thread pool
Getting ready
How to do it...
How it works...
Posting an asynchronous operation on a thread pool
Getting ready
How to do it...
How it works...
Thread pool and the degree of parallelism
Getting ready
How to do it...
How it works...
Implementing a cancellation option
Getting ready
How to do it...
How it works...
Using a wait handle and timeout with a thread pool
Getting ready
How to do it...
How it works...
There's more…
Using a timer
Getting ready
How to do it...
How it works...
Using the BackgroundWorker component
Getting ready
How to do it...
How it works...
4. Using Task Parallel Library
Introduction
Creating a task
Getting ready
How to do it...
How it works...
Performing basic operations with a task
Getting ready
How to do it...
How it works...
Combining tasks together
Getting ready
How to do it...
How it works...
Converting the APM pattern to tasks
Getting ready
How to do it...
How it works...
Converting the EAP pattern to tasks
Getting ready
How to do it...
How it works...
Implementing a cancellation option
Getting ready
How to do it...
How it works...
Handling exceptions in tasks
Getting ready
How to do it...
How it works...
There's more…
Running tasks in parallel
Getting ready
How to do it...
How it works...
Tweaking tasks execution with TaskScheduler
Getting ready
How to do it...
How it works...
5. Using C# 5.0
Introduction
Using the await operator to get asynchronous task results
Getting ready
How to do it...
How it works...
Using the await operator in a lambda expression
Getting ready
How to do it...
How it works...
Using the await operator with consequent asynchronous tasks
Getting ready
How to do it...
How it works...
Using the await operator for the execution of parallel asynchronous tasks execution
Getting ready
How to do it...
How it works...
Handling exceptions in the asynchronous operations
Getting ready
How to do it...
How it works...
Avoid using the captured synchronization context
Getting ready
How to do it...
How it works...
Working around the async void method
Getting ready
How to do it...
How it works...
Designing a custom awaitable type
Getting ready
How to do it...
How it works...
Using the dynamic type with await
Getting ready
How to do it...
How it works...
6. Using Concurrent Collections
Introduction
Using ConcurrentDictionary
Getting ready
How to do it...
How it works...
Implementing asynchronous processing using ConcurrentQueue
Getting ready
How to do it...
How it works...
Changing asynchronous processing order ConcurrentStack
Getting ready
How to do it...
How it works...
Creating a scalable crawler with ConcurrentBag
Getting ready
How to do it...
How it works...
Generalizing asynchronous processing with BlockingCollection
Getting ready
How to do it...
How it works...
7. Using PLINQ
Introduction
Using the Parallel class
Getting ready
How to do it...
How it works...
Parallelizing a LINQ query
Getting ready
How to do it...
How it works...
Tweaking the parameters of a PLINQ query
Getting ready
How to do it...
How it works...
Handling exceptions in a PLINQ query
Getting ready
How to do it...
How it works...
Managing data partitioning in a PLINQ query
Getting ready
How to do it...
How it works...
Creating a custom aggregator for a PLINQ query
Getting ready
How to do it...
How it works...
8. Reactive Extensions
Introduction
Converting a collection to asynchronous Observable
Getting ready
How to do it...
How it works...
Writing custom Observable
Getting ready
How to do it...
How it works...
Using Subjects
Getting ready
How to do it...
How it works...
Creating an Observable object
Getting ready
How to do it...
How it works...
Using LINQ queries against the observable collection
Getting ready
How to do it...
How it works...
Creating asynchronous operations with Rx
Getting ready
How to do it...
How it works...
9. Using Asynchronous I/O
Introduction
Working with files asynchronously
Getting ready
How to do it...
How it works...
Writing an asynchronous HTTP server and client
Getting ready
How to do it...
How it works...
Working with a database asynchronously
Getting ready
How to do it...
How it works...
Calling a WCF service asynchronously
Getting ready
How to do it...
How it works...
10. Parallel Programming Patterns
Introduction
Implementing Lazy-evaluated shared states
Getting ready
How to do it...
How it works...
Implemen...

Table of contents

  1. Multithreading in C# 5.0 Cookbook