异步等待MongoDB c#驱动程序

时间:2015-09-01 09:35:37

标签: c# wpf mongodb wcf asynchronous

我正在尝试实现一个自动完成文本框,它连接到mongodb服务器以从数据库中获取集合并查看它。我的参考是this

Func<string, IObservable<Scrip[]>> getSuggestions = GetSuggestions;

GetSuggestions看起来像

private IObservable<Scrip[]> GetSuggestions(string searchString)
    {
        return Observable.FromAsync(() => myService.SearchAsync(searchString));
    }

Rx实现看起来像

var results = from searchTerm in textChangedObservable
            from serviceSuggestion in getSuggestions(searchString)
            select serviceSuggestion;

        results.ObserveOn(listBoxSearchResults).Subscribe(res =>
        {
            listBoxSearchResults.Items.Clear();
            foreach (var r in res)
            {
                listBoxSearchResults.Items.Add(r);
            }
        });

我对如何在我的WCF服务中实现这一点感到困惑。我开始使用方法

public async Task<List<Scrip>> Search(string searchString)

实施将像

            var ret = await _database.ListCollectionsAsync(options);

现在如何在保持方法异步的同时将返回值转换为Task<List<Scrip>>

1 个答案:

答案 0 :(得分:0)

_database.ListCollectionsAsync(options);

这将返回一个任务。

如果您删除await,它仍然是一个任务。