Facebook GraphRequest.Start()必须从主线程调用

本文关键字:线程 调用 GraphRequest Start Facebook | 更新日期: 2023-09-27 18:15:54

我正在尝试遵循这里提供的入门示例: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 ();
});

然而,当我运行完全相同的代码从后台线程使用任务。运行,似乎完成处理程序委托在请求。Start不会被调用。

GraphRequest只支持主线程执行吗?

Facebook GraphRequest.Start()必须从主线程调用

您可以使用:

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();