私は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()」も試しましたが、うまくいきませんでした。
この問題を処理するための提案はありますか? この写真のアップロードを処理するために別のスレッドを使用しますか? または?
すべての回答とコメントをありがとう。