In this chapter, we covered a lot of ground, from both a .NET Micro Framework and a C# programming perspective.
We built a complete device that reads and responds to input signals and produces control outputs. We also used threads to allow several tasks to be performed in parallel and considered how to manage the synchronization issues that arise when threads must interact. We created objects that hold data and have behaviors, and we considered how error conditions can be signaled and managed by the use of exceptions. Finally, we saw how a .NET Micro Framework device can be made to send data to other systems.
You should regard this chapter as a "grab bag" of tools and techniques that you can use for your own projects.