I’ve placed some very basic code below of what I’m trying to do. I have the ‘DoSomethingAshnc’ method that performs an Asynchronous operation. I would like the ‘DoSomething’ method to be a Synchronous method that doesn’t take in the action parameter and returns an int.
public void DoSomething(Action<int> actionToPerformOnComplete)
{
DoSomethingAsync(delegate(int val)
{
actionToPerformOnComplete(val);
});
}
Is it even possible to have ‘DoSomething’ return an integer as if the method was happening synchronously?
You’d need to add something in the end of your sync method, to tell it to wait for the other call to finish. I’m assuming your async method will have an event on to tell the caller when it’s finished.
If so then I’d suggest using something like a ManualResetEvent, waiting on it in your sync thread, and set it in the Finish event receiver for the async one.
Example: