The sample program in the /multithreaded directory demonstrates the use of proxy objects in multiple threads to perform operations in parallel. You can use the same technique to enable a client application to continue running and calling other operations as it waits for an operation to complete. For example, if a client application calls the WaitTillWorkflowComplete operation on thread, the application can continue to perform other operations on other threads.