当前位置:  开发笔记 > 编程语言 > 正文

从异步方法返回bool

如何解决《从异步方法返回bool》经验,为你挑选了1个好方法。

我必须使用一个方法作为async和返回Task.但是在await我得到的关键字无法在编译时本身等待字符串作为错误.我试图从方法中返回bool但是徒劳.这是我的方法..

public async Task searchName(string Name)
{
    Group retrievedGroup = new Group();
    string foundGroup = null;
    try
    {
        foundGroup = await Client().Groups
                .Where(group => group.DisplayName.Equals(Name))
                .ExecuteAsync().Result.ToString();

         if (foundGroup == "Some Name")
         {
             return true;
         }
         else
         {
             return false;
         }
    }
    catch (){ }
}

Hamid Pourja.. 6

问题只是运营商的优先事项.使用括号.你应该删除Result另外.

foundGroup = (await Client().Groups
                .Where(group => group.DisplayName.Equals(Name))
                .ExecuteAsync()).ToString();

dot(.)具有比等待更高的优先级,所以当你有

foundGroup = await Client().Groups
        .Where(group => group.DisplayName.Equals(Name))
        .ExecuteAsync().Result.ToString();

它会等待ToString();.还要注意你有

ExecuteAsync().Result.ToString();

访问Result任务会导致它执行,并且会丢失您想要实现的所有异步条件.



1> Hamid Pourja..:

问题只是运营商的优先事项.使用括号.你应该删除Result另外.

foundGroup = (await Client().Groups
                .Where(group => group.DisplayName.Equals(Name))
                .ExecuteAsync()).ToString();

dot(.)具有比等待更高的优先级,所以当你有

foundGroup = await Client().Groups
        .Where(group => group.DisplayName.Equals(Name))
        .ExecuteAsync().Result.ToString();

它会等待ToString();.还要注意你有

ExecuteAsync().Result.ToString();

访问Result任务会导致它执行,并且会丢失您想要实现的所有异步条件.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有