TwitterResponse вызывает зависание на Silverlight - PullRequest
1 голос
/ 02 января 2012

Всякий раз, когда я пытаюсь сделать любой запрос в Твиттере, мое приложение всегда зависает. Это не относится к oAuthUtility, хотя я успешно разрешил пользователю использовать мое приложение, но всякий раз, когда я делаю запрос, оно просто зависает. Вот один из запросов, которые я делаю, который зависает:

        Dim response As TwitterResponse(Of TwitterStatus) = TwitterStatus.Update(myFire_tokens.Tokens, TextBox1.Text)
    If response.Result <> RequestResult.Success Then
        MessageBox.Show(response.ErrorMessage, "Error", MessageBoxButton.OK)
    Else
        MessageBox.Show("Tweet Sent", "Awesome!", MessageBoxButton.OK)
    End If

Это зависание происходит в версии 2.4 и выпусках: 504, 516 и 523. В Silverlight 5 и 4. Я верю, что проблема заключается в TwitterResponse, потому что метод вызывается (например, если я запустил приведенный выше код, написал бы в Твиттере), потому что я вижу ответ ОК в Fiddler.

В отладчике нет исключений, приложение просто зависает.

1 Ответ

1 голос
/ 03 января 2012

Вам следует создать ссылку на проект SilverlightAsync.

Если вы находитесь на стороне Silverlight, он использовал бы эту подпись:

public static IAsyncResult Update(
    OAuthTokens tokens, 
    string text, 
    StatusUpdateOptions options, 
    TimeSpan timeout, 
    Action<TwitterAsyncResponse<TwitterStatus>> function)

обратите внимание на дополнительные два параметра?

Ваш код должен выглядеть примерно так

TwitterStatus.Update(
    myFire_tokens.Tokens, 
    TextBox1.Text, 
    Nothing, 
    0,
    Sub (response As TwitterAsyncResponse<TwitterStatus>)
        If response.Result <> RequestResult.Success Then
            MessageBox.Show(response.ErrorMessage, "Error", MessageBoxButton.OK)
        Else
            MessageBox.Show("Tweet Sent", "Awesome!", MessageBoxButton.OK)
        End If
    End Sub)
...