You are an enterprise application developer. You create a component that exposes a static method. The static method performs a complex business algorithm and the method must support concurrent callers. You use asynchronous processing to implement the method. You need to ensure that the client application is notified about the completion of the method. What should you do?
A.
Add a public static event to the component and raise the event when processing is complete.
B.
Pass a callback delegate from the client application as a parameter to the processing method.
Invoke the delegate when processing is complete.
C.
Add a public static property to the component and permit the client application to poll the component for completion.
D.
Add a constructor that accepts a callback delegate as parameter from the client application.
Invoke the delegate when processing is complete.