Now that we know what is in store for c#5, there is apparently still an opening for us to influence the choice of the two new keywords for 'Asynchrony' that were announced by Anders Heijsberg yesterday at PDC10.

async void ArchiveDocuments(List&lt;Url&gt; urls) {
    Task archive = null;
    for(int i = 0; i &lt; urls.Count; ++i) {
        var document = await FetchAsync(urls[i]);
        if (archive != null)
            await archive;
        archive = ArchiveAsync(document);
    }
}


Eric Lippert has an explanation of the choice of the current two keywords, and the way in which they have been misunderstood in usability studies. The comments have several other propositions.

Please - one suggestion per answer, duplicates will be nuked.


Question: generic helper to get ObjectResult<T> that will match any given EntityObject
Answer: why not consider passing in a collection of sql paramters in to the function call as a parameter. Once you do this, you can use any number of filters of multiple types

public ObjectResult&lt;theSelectedTableNameModel&gt; GetEntityBySQLCommand(string sqlStr, SqlParameter[] filterParams, string OrderByFilter="")
{
    var commandTextToExecute = OrderByFilter.isNotEmptyOrNull() ? sqlStr : string.Format(“{0} Order By {1}”, sqlStr, OrderByFilter);

    return yourObjectContext.ExecuteStoreQuery&lt;theSelectedTableNameModel&gt;(commandTextToExecute, filterParams);
}


Your sqlStr should look something like the following “SELECT * FROM Customer WHERE CustId = @custID and LastActiveOn = @lastActiveDate”;
custID and lastActiveDate should be passed in via the SqlParameter collection (filterParams)