Hands-on parallel programming with C# 8 and .NET Core 3 : build solid enterprise software suing task parallelism and multithreading /
Hands-On Parallel Programming with C# 8 and .NET Core 3 presents a smart way of learning and implementing parallel programming concepts. The book details threading and concurrency fundamentals that will help any C# developer build optimized applications.
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Birmingham, UK :
Packt Publishing,
2019.
|
Temas: | |
Acceso en línea: | Texto completo (Requiere registro previo con correo institucional) |
Tabla de Contenidos:
- Cover
- Title Page
- Copyright and Credits
- Dedication
- About Packt
- Contributors
- Table of Contents
- Preface
- Section 1: Fundamentals of Threading, Multitasking, and Asynchrony
- Chapter 1: Introduction to Parallel Programming
- Technical requirements
- Preparing for multi-core computing
- Processes
- Some more information about the OS
- Multitasking
- Hyper-threading
- Flynn's taxonomy
- Threads
- Types of threads
- Apartment state
- Multithreading
- Thread class
- Advantages and disadvantages of threads
- The ThreadPool class
- Advantages, disadvantages, and when to avoid using ThreadPool
- BackgroundWorker
- Advantages and disadvantages of using BackgroundWorker
- Multithreading versus multitasking
- Scenarios where parallel programming can come in handy
- Advantages and disadvantages of parallel programming
- Summary
- Questions
- Chapter 2: Task Parallelism
- Technical requirements
- Tasks
- Creating and starting a task
- The System. Threading. Tasks. Task class
- Using lambda expressions syntax
- Using the Action delegate
- Using delegate
- The System. Threading. Tasks. Task. Factory. StartNew method
- Using lambda expressions syntax
- Using the Action delegate
- Using delegate
- The System. Threading. Tasks. Task. Run method
- Using lambda expressions syntax
- Using the Action delegate
- Using delegate
- The System. Threading. Tasks. Task. Delay method
- The System. Threading. Tasks. Task. Yield method
- The System. Threading. Tasks. Task. FromResult method
- The System. Threading. Tasks. Task. FromException and System. Threading. Tasks. Task. FromException methods
- The System. Threading. Tasks. Task. FromCanceled and System. Threading. Tasks. Task. FromCanceled methods
- Getting results from finished tasks
- How to cancel tasks
- Creating a token
- Creating a task using tokens
- Polling the status of the token via the IsCancellationRequested property
- Registering for a request cancellation using the Callback delegate
- How to wait on running tasks
- Task. Wait
- Task. WaitAll
- Task. WaitAny
- Task. WhenAll
- Task. WhenAny
- Handling task exceptions
- Handling exception from single tasks
- Handling exceptions from multiple tasks
- Handling task exceptions with a callback function
- Converting APM patterns into tasks
- Converting EAPs into tasks
- More on tasks
- Continuation tasks
- Continuing tasks using the Task. ContinueWith method
- Continuing tasks using Task. Factory. ContinueWhenAll and Task. Factory. ContinueWhenAll
- Continuing tasks using Task. Factory. ContinueWhenAny and Task. Factory. ContinueWhenAny
- Parent and child tasks
- Creating a detached task
- Creating an attached task
- Work-stealing queues
- Summary
- Chapter 3: Implementing Data Parallelism
- Technical requirements
- Moving from sequential loops to parallel loops
- Using the Parallel. Invoke method
- Using the Parallel. For method