One of the most common misunderstandings in .NET development is the idea that variables of type IEnumerable or ReadOnlyCollection are thread-safe. In order to offer truly thread-safe collections for scenarios where you would be tempted to use IEnumerable or ReadOnlyCollection, Microsoft’s Base Class Library (BCL) team is offering a preview of a new set of immutable collections.
SharpCrafters, makers of the AOP framework PostSharp, have developed a drop-in deadlock detection toolkit. This toolkit works with most standard locking primitives such as Mutex, Monitor, and ReaderWriterLock with only a single line of code added to the project.
The Dutch company Vector Fabrics recently introduced its tool called Pareon. According to the company’s press release, the tool allows to optimize applications for multicore systems.
WPF 4.5 has improved its support for multi-threaded data binding, but the technique is still risky. This report attempts to explain how it works and what’s involved in using it safely.
The new Async CPT for VB and C# looks like it may actually make it into the core language. But with all the emphasis on multi-core systems, why is Microsoft investing so heavily in syntax for designed specifically for making single-threaded asynchronous programming easier?
C# 4.0 implemented a change that assured optimized and non -optimized compiles yielded consistent results. This "Fix" emphasized some design problems with locking mechanisms.
Concurrent Basic represents a possible future for Visual Basic. Though based on work done in C# research languages such as Polyphonic C# and C-Omega, Visual Basic was chosen for its inherent predisposition towards declarative programming. The syntax is even inspired by VB’s declarative event handlers.
Jared Parsons proposes a better thread-safe collection. By using a design pattern that strongly encourages, but not enforces, thread-safety, his API is both easy to use and easy to understand.
.NET 4 is adding support for tasks. Tasks are lightweight units of work much like queue work items, but with support for waits, continuations, and futures. Tasks can also support parent-child relationships with waits and cancellations being automatically threaded through them.
Nick Gunn provides a practical introduction Using the Concurrency and Coordination Runtime. CCR radically changes the way multi-threaded applications are written in .NET, shifting the focus from threads and locks to lightweight, asynchronous tasks. The Concurrency and Coordination Runtime, also known as CCR, offers actor-style concurrency for .NET applications.
Iterators are at the core of .NET programming. Only rarely do developers actually work against indexed data, preferring to use for-each loops for most tasks. But is this inherently sequential access method appropriate as we turn more to multi-threaded applications?
In this article, which was originally published on InfoQ Japan, Daisuke Maki describes some of the challenges of developing responsive AJAX applications, and presents Concurrent.Thread as a solution to easing the complexity involved in asynchronous communcation in AJAX.
In part 2 of "Java 6 threading optimizations" article series, author Jeroen Borgers examines various threading optimizations and JVM arguments to manage them. He also talks about factors like On Stack Replacement (OSR), Heap Management and Lock object data size which could significantly affect the performance of multi-threaded java applications.
Microsoft's The Parallel Computing Platform team will be presenting on Concurrent, Multi-core Programming for Windows and .NET during the PDC pre-conference Sessions. These sessions are day-long, in-depth presentations on specific topics. Held the Sunday before the main conference, a separate registration is required.
When .NET 2.0 SP 1 was released with .NET 3.5, the thread pool underwent some significant changes. As Michael C. Kennedy discovered, not all were for the best.