我很新的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的評論。謝謝 –