Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 必须从主线程调用Facebook GraphRequest.Start()?_C#_Facebook_Xamarin_Async Await_Facebook Ios Sdk - Fatal编程技术网

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

C# 必须从主线程调用Facebook GraphRequest.Start()?,c#,facebook,xamarin,async-await,facebook-ios-sdk,C#,Facebook,Xamarin,Async Await,Facebook Ios Sdk,我试图遵循此处提供的入门示例: 以下GraphRequest在主线程内执行时工作正常: var request = new GraphRequest ("/me?fields=name", null, AccessToken.CurrentAccessToken.TokenString, null, "GET"); request.Start ((connection, result, error) => { // Handle if something went wrong wi

我试图遵循此处提供的入门示例:

以下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是否只支持从主线程执行?

您可以使用:

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