C# Promises, compatible with .Net 2