Reactive Extensions(Rx : https://msdn.microsoft.com/en-us/data/gg577609.aspx)

1.간단한 background 작업 및 작업 완료 기다리기(Async)

Debug. WriteLine( "Shows use of Start to start on a background thread:" );
_Observer = Observable . Start(() =>
{
    //This starts on a background thread.
    Debug .WriteLine( "From background thread. Does not block main thread." );
    Debug .WriteLine( "Calculating..." );
    Thread .Sleep( 5000 );
    Debug .WriteLine( "Background work completed." );
});
_Observer . Wait();
Debug .WriteLine( "Form1() End." );

Reactive Framework인데 생각보다 사용법도 복잡하고, 최근에는 update도 잘 이루어 지지 않아 비추 합니다.

하지만 이런게 있다는 것만 알면 될듯 하네요.