Outlook Redemption (Redemption.dll) and Background Threading do not mix.

Outlook Redemption is a very nice library which allows access to many Outlook functions many of those not exposed via the Outlook object model. We are currently using Redemption in our application to add outlook appointments with reminders, pop email messages with pre-populated information, etc.

We wrapped the Redemption.dll into our own Singleton class and called it OutlookRedemption as you will see in the following code examples.

We have had a couple of situations where emailing from our application stops working or works intermittently and in both of those occurrences, the culprit was using the API in a back ground thread.

Creating a Singleton (Instance) Class in C#

In application development there are various situations in which it makes sense to code a class in a manner that it can be created (instantiated) once and used throughout the lifetime of the application. Generally this type of class is called a Singleton object.

When creating and object, CPU cycles are used up during the:

  • Creation of the Object
  • Initialization of the Object
  • Loading of the Object, including seed data from the dB etc.