views:

76

answers:

0

I would like EndGetMatches in the code below to get called when a certain event is fired. BeginGetMatches executes and completes but I don't want EndGetMatches to get called yet. I want to return the ActionResult only when my other Thread notifies me i'm ready to.

public delegate void MatchEvent(MatchEventArgs args);
public IAsyncResult BeginGetMatches(string privateId, string publicId, AsyncCallback callback, object state) {
 // pseudo code
 // Matcher is a running thread
  Matcher matcher = Matcher.getInstance();
 // When matches are ready, call matchesReady() .. this might be after 2 secs for example
  matcher.add(privateId, publicId, new MatchEvent(matchesReady));
 //  return something
}

// gets called back when the Matcher decides so
public void matchesReady(MatchEventArgs args) {
  // call EndGetMatches somehow and return Response to client
}

public ActionResult EndGetMatches(IAsyncResult result)
{
}

Am I making sense here?