Looking for the Audiobook Edition? Tell us that you'd like this title to be produced as an audiobook, and we'll alert our colleagues at Audible.com. If you are the author or rights holder, let Audible help you produce the audiobook: Learn more at ACX.com.
A practical guide to developing responsive multi-threaded and multi-process applications in C#. Whether you are a beginner to working with threads or an old hand that is looking for a reference, this book should be on your desk. This book will help you to build scalable, high performance software using parallel programming techniques. Students learning introductory threaded programming in C# will also gain benefits from this book.
{"itemData":[{"priceBreaksMAP":null,"buyingPrice":37.99,"ASIN":"1847197108","isPreorder":0},{"priceBreaksMAP":null,"buyingPrice":19.89,"ASIN":"0735651590","isPreorder":0},{"priceBreaksMAP":null,"buyingPrice":46.46,"ASIN":"1430229675","isPreorder":0}],"shippingId":"1847197108::ZaZiNaMeWpk8J3mL%2BaD6tSIQ2GPcMnGdwmcR9li8ugHcmzDkKRJd6b2H0n8JmTDpAnjgm3uOMXwifAIOqlkH1BuFzzNikb1Zl6HjlE5s2LHDsEBu1R4d4A%3D%3D,0735651590::rJrE0K%2FGFv%2Fj%2FBlMEiXTOtCX%2BVB3stma9%2FSkHyFGCbct9VbdET1SBvKEE%2FP76%2BJqkkrcpW%2FfWTlgOEyXXaoZyGyL7DP8nv7aQWwmAqlVYcVLvcyrXs%2B1qA%3D%3D,1430229675::btg%2BHSFTtlTl7%2Bq4ndNxmwzA6F3iAR72aOLvVEGUIuONvTCIWubZOlSlqjot%2FIkt7sAqYPqRVzidUpefPzr5O%2Bf%2FeDCjkmVyPlGwGlQx5brnJJD773zn1w%3D%3D","sprites":{"addToWishlist":["wl_one","wl_two","wl_three"],"addToCart":["s_addToCart","s_addBothToCart","s_add3ToCart"],"preorder":["s_preorderThis","s_preorderBoth","s_preorderAll3"]},"currenyCode":"USD","shippingDetails":{"xz":"same","yz":"same","xy":"same","xyz":"same"},"tags":["x","y","z"],"strings":{"addToWishlist":["add to wishlist","Add both to Wish List","Add all three to Wish List"],"addToCart":["Add to Cart","Add both to Cart","Add all three to Cart"],"showDetailsDefault":"Show availability and shipping details","shippingError":"An error occurred, please try again","hideDetailsDefault":"Hide availability and shipping details","priceLabel":["Price:","Price for both:","Price for all three:"],"preorder":["Pre-order this item","Pre-order both items","Pre-order all three items"]}}
Whether you are a beginner to working with threads or an old hand that is looking for a reference, this book should be on your desk. This book will help you to build scalable, high performance software using parallel programming techniques.
Students learning introductory threaded programming in C# will also gain benefits from this book.
What you will learn from this book?
Transform single-threaded algorithms to multithreaded scalable jobs by using object-oriented capabilities create an independent thread with an asynchronous execution by using a delegate to update the UI
Achieve responsive user interface using synchronous and asynchronous delegates to dispatch changes to the UI thread
Specify the degree of parallelism desired for determining the number of threads that the query must use to achieve better performance
Create applications that use the full power of the processors using parallel programming techniques
Develop applications to create background threads using the BackgroundWorker component
Learn debugging techniques to find solutions to multithreaded application problems
About the Author
Gastón C. Hillar has been working with computers since he was eight. He began programming with the legendary Texas TI-99/4A and Commodore 64 home computers in the early 80's. He has a Bachelor degree in Computer Science, graduated with honors and an MBA (Master in Business Administration), graduated with an outstanding thesis. He worked as developer, architect, and project manager for many companies in Buenos Aires, Argentina. Now, he is an independent IT consultant and a freelance author always looking for new adventures around the world. He also works with electronics (he is an electronics technician). He is always researching about new technologies and writing about them. He owns an IT and electronics laboratory with many servers, monitors and measuring instruments. He is the author of more than 40 books in Spanish about computer science, modern hardware, programming, systems development, software architecture, business applications, balanced scorecard applications, IT project management, Internet and electronics. He usually writes articles for Spanish magazines "Mundo Linux", "Solo Programadores" and "Resistor".
Developing safe and reliable multithreaded applications in C# can be an arduous endeavor when the use of locks to synchronize access to shared object states is involved; arduous because in complex applications it is difficult to reason with certainty about lock behavior and deadlocks, etc. Although this book is about C# multithreading, it does not cover discussions of such problems and how to program defensively when the use of locks and other synchronization constructs are a necessity; instead, the book provides tutorials on four very specific areas or topics: (1) tools useful for debugging multithreaded C# applications and how to use them; (2) how to break up a big task into smaller independent pieces that multiple threads can work on in isolation with the help of a coordinator object but without the use of locks (example used was an image processing task where multiple threads can work independently on non-overlapping portions of the image); (3) how to use thread pools and request queues to handle certain kinds of I/O-related tasks that don't require the use of locks, and (4) how to make certain kinds of Windows Forms applications (i.e., those not involving the use of locks) to be more responsive. Each of these topics is discussed well, although the sample applications themselves are somewhat contrived and simplistic and unlikely to be the kind of applications one would encounter in the real world. As for the writing style, the author has a tendency to repeatedly use a few select or favorite phrases to explain things, instead of stating the same idea differently to keep the writing a little more interesting. If you have an interest in getting a gentle introduction to design problems that lend themselves to multithreading without the use of locks etc., this book might be of interest to you.... If you are a developer who is struggling with more typical multithreading problems involving locks, deadlocks, etc, the tools discussion in this book will help but not much else.Read more ›
I've been a professional developer for a lot of years and have done a lot of threading code to - I thought - help both UI responsiveness and backend parallel processing. BUT, I have to admit that I've always known that I really didn't "get" the whole picture and wondered when I spawned threads if I was really doing the best thing or just copying from blind rote.
I have not yet finished this book all the way through but after just the first few chapters I am very happy. Now I understand more of the hardware issues and how not only multi-proc but also multi-core systems are dealing with my code.
Honestly, if all I'd got out of it was the early diagram and explanation of the "waterfall" of machine features and resources, and the explanation behind the log/exp correlations of adding procs and cores to a system it would still have been worth the cost of the book. Now I know that my coding will never be the same and there's no way I can now see writing up even a trivial app without thinking about how my code is going to work against that "waterfall".
The book is organized as a set of lessons. Progressing from lesson to lesson, you are instructed to "add this line, change that line" with little explanation beforehand why you are making the changes. The book feels like it was translated from a set of instructor led weekly lessons (including the bad jokes). There's no discussion of semaphores because the author essentially says "I just showed you how to organize your classes so there's no need to use semaphores, so I won't talk about them". I have mixed feelings about the book. It's the kind of book where you have to work the examples to learn the subject, not by reading it. It's unusable as a reference, so I won't be looking at it again when I write threaded code. If it was a hard bound book, I would have returned it.
The title seems attractive to any .net developer interested in getting an insight into developing multi-threaded applications. This book definitely meets the expectations. It covers a lot of ground with some really cool examples and clears threading concepts in a lucid manner. I especially like Chapter 5 on Debugging techniques and Chapter 11 Coding with .Net Parallel extensions (Covers parallelizing LINQ queries). Kudos to Gaston Hillar and Packt.
Having said that, I would have liked to see some information and examples on CCR(Concurrency and Coordination Runtime) library.
I read the other reviews and still bought this book. The examples along with the explanations were perfect to get my project using threads. There is much information on the Net on threading without real world examples that actually work. This book takes you through simple examples along with an explanation of the example to increasingly more complex programming.
This is the most annoying .Net book I've read in a while. First, it cannot be read without the code examples available on a computer next to the book. The text talks about inserts and removing code from methods without showing the methods and their signatures. Second, hungarian notation - give me a break. Third, the examples have distracting graphical clutter. The author seems to think the cute graphics are important. Fourth, how about using the concise property creation - MyProperty {get; set;}
If you can wade through the clutter, the the technology is helpful.