【问题标题】:Must Facebook GraphRequest.Start() be called from main thread?必须从主线程调用 Facebook GraphRequest.Start() 吗?
【发布时间】:2015-10-03 13:07:25
【问题描述】:

我正在尝试遵循此处提供的入门示例:https://components.xamarin.com/gettingstarted/facebookios

以下 GraphRequest 在主线程中执行时可以正常工作:

var request = new GraphRequest ("/me?fields=name", null, AccessToken.CurrentAccessToken.TokenString, null, "GET");
request.Start ((connection, result, error) => {
    // Handle if something went wrong with the request
    if (error != null) {
        new UIAlertView ("Error...", error.Description, null, "Ok", null).Show ();
        return;
    }

    // Get your profile name
    var userInfo = result as NSDictionary;
    nameLabel.Text = userInfo ["name"].ToString ();
});

但是,当我使用 Task.Run 从后台线程运行完全相同的代码时,似乎永远不会调用 request.Start 中的完成处理程序委托。

GraphRequest 是否只支持从主线程执行?

【问题讨论】:

    标签: c# facebook xamarin async-await facebook-ios-sdk


    【解决方案1】:

    你可以使用:

    var graphRequest = new GraphRequest ("/me?fields=name,gender", null, AccessToken.CurrentAccessToken.TokenString, null, "GET");
        var requestConnection = new GraphRequestConnection();
        requestConnection.AddRequest(graphRequest, (connection, result, error) =>
          {
            var profile = result;
          });
        requestConnection.Start();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      相关资源
      最近更新 更多