2014-03-04 1 views
1

Linq to Twitter 최신 버전 3.0.2를 사용하여 추종자를 가져 오려고합니다. 응답을 반환하지 않거나 오류를 throw하지 않습니다. 첫째 트위터에서추종자를 인출 할 때 응답이나 오류가 발생하지 않았습니다. Linq to Twitter

private static async Task<List<TwitterData>> GetTwitterFollowers(
      ulong twitterUserId, SingleUserAuthorizer auth, int? maxFollowers) 
      { 

       var follower = maxFollowers ?? 15000; 

       try 
       { 
        var twitterCtx = new TwitterContext(auth); 
        var followers = await twitterCtx.Friendship 
               .Where(f => f.Type == FriendshipType.FollowersList 
                && f.UserID == twitterUserId.ToString()) 
               .Select(f => new TwitterData() 
               { 

                Followers = f.Users.Where(t => !t.Protected).Take(follower).Select(s => s).ToList() 
               }).SingleOrDefaultAsync(); 
        return GetFollowersList(followers.Followers); 
       } 
       catch (Exception ex) 
       { 
        return null; 
       } 

      } 

답변

1

받기 추종자 :

 var friendship = 
      await 
      (from friend in twitterCtx.Friendship 
      where friend.Type == FriendshipType.FollowersList && 
        friend.UserID == twitterUserId.ToString() 
      select friend) 
      .SingleOrDefaultAsync(); 

은 그럼 당신은 쿼리에 개체에 LINQ와 사용자 정의 투사 할 수 있습니다

var followers = GetTwitterFollowers 
      (twitterUserId, auth, maxFollowers); 

     var foll = followers.ContinueWith(f => 
              { 
               return f.Result; 
              }).Result; 

"GetTwitterFollowers"방법으로 정의를 제안하십시오 결과.

업데이트 :

var followers = await GetTwitterFollowersAsync(twitterUserId, auth, maxFollowers); 

그런 다음, 당신은 ContinueWith 필요하지 않습니다 :

당신은이 같은 GetTwitterFollowers에 대한 호출을 기다리고 있습니다. 기다리는 동안 GetTwitterFollowers가 즉시 반환하기 때문에 작동하지 않습니다. ContinueWith 람다가 실행될 수도 있지만 루틴을 반환하지 않도록하는 것이 없으므로 람다 실행 결과를 얻지 못합니다. 이 작업을보다 쉽게하기 위해 비동기/대기 상태로 잠시 시간을 보내는 것이 도움이 될 수 있습니다.

http://msdn.microsoft.com/en-us/library/hh191443.aspx

+0

문제는, 내가 다시 어떤 반응을 얻고 있지 않다 : 여기에 도움이 될 수 있습니다 뭔가. 그냥 계속 실행하고 결과 나 오류가 발생하지 않았습니다. – user2866746

+0

응답을 받으면 결과를 frm public 메서드로 반환하고 싶습니다. 그것이 내가 바보를 사용하는 이유입니다. 계속 ... (...) 계속 ...이 시점에서 잘못된 것이 있습니까? 왜냐하면 내가 이것을 사용하지 않으면, 결과없이 호출자에게 돌아 오기 때문입니다. – user2866746

+0

나는 당신의 문제에 대한 이유가 무엇인지 생각해 보았다. –