Я пытаюсь обернуться вокруг асинхронного вызова методов.
public IDictionary<string, int> DoSomething(string startsWith)
{
return new Dictionary<string, int>();
}
public IAsyncResult BeginDoSomething(string startsWith, AsyncCallback callback,
object state)
{
return new Func<string, IDictionary<string, int>>(DoSomething)
.BeginInvoke(startsWith, callback, state);
}
public IDictionary<string, int> EndDoSomething(IAsyncResult result)
{
// How to return the IDictionary?!
}
Моя проблема в том, что я понятия не имею, как получить IDictionary в методе EndDoSomething.Я погуглил и увидел, что некоторые люди используют состояние и обратный вызов, в то время как другие создают свой собственный класс, производный от IAsyncResult, возвращают его из Begin и приводят к нему в конце.Это?Или что будет правильным?