Free Threading Library for C# and VB.NETAcrux.Threading.NET is a library that provides implementation of an "Observer" design pattern in native Microsoft.NET. It is a perfect tool to make rich UI applications more responsive to the user by separating the worker classes (also called model or "Subject") from the user interface components that "observe" the model and display a view of it when it changes. You could think of the library as a multithreaded implementation of the Model - View - Controller pattern for rich UI applications.
But this is not all. The foundation used for the Acrux Observer classes and also available in the library is a subscription based notification system that allows components to send messages to other components within the same process. This would allow you to easily integrate complex multithreaded sub-systems in a loosely coupled manner.
The idea behind the Acrux Notification System is not something conceptually new. It is a fully managed .NET implementation of a messaging system that has used concepts from widely used systems such as the COM+ Notifications, Windows API messaging and the Windows Message Queue. The main difference is that the messages delivered by the Acrux Notification System have the scope of the application process and can only be sent and received by components running in the same process.
There are a couple of advantages of having components to communicate using messages rather than using direct calls on the interfaces that they support and implement. The biggest one is that the components become very loosely coupled. They don't need to know any details about the components they communicate to - being design or binary version details. The only important thing here is the version of the messages being sent, not the type or the version of the components that process them. So long as you don't change too much the subjects being processed by your software you will have the freedom of changing as much as you want the components and sub-systems involved and to develop, extend and change them independently without introducing breaking changes to the existing older versions of your products.
The second big advantage of the Notification System is that it is very good for multithreaded UI application as it is already threading-aware. It provides a cross-threaded and thread safe delivery of the messages to all subscribers. If the subscriber is an UI control the messages will be delivered to the UI control's own thread eliminating any cross-threading resource access issues and .NET cross threading runtime warnings.
Other advantages are the asynchronous calls and the message queuing nature that allow your applications to remain responsive under high load and to process the queued messages at a later time.
Acrux Threading.NET allows you to build Service Oriented Architecture at a process level. You can very easy reuse your existing components by "hosting" them in the same process as your other components and to connect them to each other using messages and subscriptions.
CURRENT VERSION: 1.0.0.35






