【问题标题】:Async Await wth MongoDB c# driver使用 MongoDB c# 驱动程序异步等待
【发布时间】:2015-09-01 09:35:37
【问题描述】:

我正在尝试实现一个自动完成文本框,它连接到 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&lt;List&lt;Scrip&gt;&gt;

【问题讨论】:

    标签: c# wpf mongodb wcf asynchronous


    【解决方案1】:
    _database.ListCollectionsAsync(options);
    

    这会返回一个任务。

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

    【讨论】:

      猜你喜欢
      • 2018-05-02
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 1970-01-01
      • 2018-06-11
      • 2018-07-24
      • 1970-01-01
      相关资源
      最近更新 更多