C# 必须从主线程调用Facebook GraphRequest.Start()?
我试图遵循此处提供的入门示例: 以下GraphRequest在主线程内执行时工作正常: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
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();