Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3943264
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 20, 20262026-05-20T00:45:41+00:00 2026-05-20T00:45:41+00:00

I have the following snippet of code (as an example) that looks up a

  • 0

I have the following snippet of code (as an example) that looks up a contact:

public string Search()
{
    string address = "";

    ContactManager manager = new ContactManager();

    // LookupComplete is just a plain event
    manager.LookupComplete += delegate
    {
        address = manager.Address;
    };

    manager.SearchFor("bob");
    return address; // Address always appears to be populated
}

Update:
Here’s the ContactManager:

public class ContactManager
{
    public string Address {get;set;}
    public event LookupComplete;

    public void SearchFor(string query)
    {
        SomeParser parser = new Parser();
        parser.TokenParsed += new EventHandler<TokenParseEventArgs>(tokenParsed);
        parser.Parse(query);    
    }

    private void tokenParsed(object sender,TokenParseEventArgs e)
    {
        if (e.Message == "EOF")
        {
            Address = e.Message.Address;

            if (LookupComplete != null)
                LookupComplete(this,EventArgs.Empty);
        }   
    }   
}

The Search method doesn’t return until that event is fired (a behaviour I didn’t realise was standard for anonymous methods/delegates).

I’m confused however how the code generated for the anonymous delegate signals the Search method when it’s complete.

I’ve tried putting a Sleep(5000) in the ContactManager.Address property as I thought it may have been from the ContactManager simply returning very quickly, but that makes no difference.

Can anyone shed any light?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-20T00:45:42+00:00Added an answer on May 20, 2026 at 12:45 am

    This has nothing to do with whether the delegate was created with an anonymous method. It’s just that manager.SearchFor is apparently a synchronous method, which doesn’t return until the lookup has finished. That makes it slightly strange for it to have an event for “lookup complete”, admittedly… it looks like you could simplify your method to simply:

    public string Search()
    {
        ContactManager manager = new ContactManager();
        manager.SearchFor("bob");
        return manager.Address;
    }
    

    Now it’s possible that there’s also an asynchronous option available on ContactManager – it’s hard to say without knowing more about the class. If there is an asynchronous option, you should consider what behaviour you actually want… are you happy with Search being synchronous, or do you actually want it to complete immediately and take some action when the search has finished?

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have following code snippet that i use to compile class at the run
I have following code snippet: class ABC{ public: int a; void print(){cout<<hello<<endl;} }; int
So I have the following snippet of code: private Nullable<decimal> _excessWages; public decimal ExcessWages
I have the following code snippet: using (SPSite site = new SPSite(this.ListAddress)) { using
I have the following snippet of java code: final Class<?> junitCoreClass = AccessController.doPrivileged( new
For this problem I have a snippet of PHP code that looks in a
I have the following code snippet that builds chained select boxes based on data
I have the following snippet of code: import csv def has_header(first_lines): sniffer = csv.Sniffer()
I have the following snippet of code (I'm using jQuery 1.4.2): $.post('/Ads/GetAdStatsRow/', { 'ad_id':
i have the following code snippet in my ANT File which compiles my project

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.