我很新的facebooksdk,但我有一个C#的winform项目来执行简单的状态发布&使用它上传照片。c#winform Facebooksdk发布与PostTaskAsync
到目前为止SDK很好,但是,FacebookClient.Post & FacebookClient.PostTaskAync有什么区别?
我用下面的代码来发布照片到我的Facebook帐户:
public static void uploadPhoto(string fPath, string userMsg, string imgType = "")
{
var fb = new FacebookClient(AccessToken);
if (imgType.Equals(""))
imgType = "image/jpeg";
using (var file = new FacebookMediaStream
{
ContentType = imgType,
FileName = Path.GetFileName(fPath)
}.SetValue(File.OpenRead(fPath)))
{
dynamic result = fb.Post("me/photos",
new { message = userMsg, file });
}
}
但是,当文件大小是巨大的,上面的方法将“挂”在我的系统为主线仍在工作,所以我尝试了以下内容:
dynamic result = fb.PostTaskAsync("me/photos",
new { message = userMsg, file });
,但它只是不工作(至少照片没有被上传到我的FB帐号)...
什么其实我想是为了避免“韩ging“感觉,我甚至尝试过”Application.DoEvents()“,但没有运气。
任何建议来处理这个问题? 我应该使用另一个线程来处理这张照片上传? 或?
感谢所有的答案&评论。
上面的'dynamic result = fb.PostTaskAsync'应该是'dynamic result = await fb.PostTaskAsync',因为PostTaskAsync的返回值是一个Task,而不是返回对象。添加await将异步产生返回对象。 –
亲爱的乔恩,请阅读我关于VS2010 SP1,.net 4.0上关于await/async的评论。谢谢 –