我对 facebooksdk 很陌生,但是我在 c# 中有一个 winform 项目,可以使用它执行简单的状态发布和照片上传。
到目前为止,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帐户)......
我实际上想要的是避免系统上出现“挂起”的感觉,我什至尝试过“Application.DoEvents()”,但没有运气。
有什么建议可以解决这个问题吗?我应该使用另一个线程来处理这张照片上传吗?或者?
感谢所有的答案和评论。