GetAsyncはうまくいきますが、非同期ですが、使用方法に関するドキュメントは見つかりません。この段階で私が望むのは、自分の名前をつけてそれをテキストブロックに割り当てることだけです。もちろん、_fbClient.GetCompleted + =/_fbClient.GetAsync( "/ me")ブロック内でこれを行うと、無効なクロススレッドアクセス例外エラーが発生します。初心者:GetAsyncを使用したクロススレッドアクセスが無効
以下のコードでは、NameTextBlockコントロールはもちろん「[EMPTY]」に設定され、後でエラーが発生する=======と書かれた行が実行されます。
私が見てきたいくつかの例では、同期Getメソッドのように見えますが、消えたようです(とにかく使用したくない)。
string name = "EMPTY";
try
{
_fbClient.GetCompleted +=
(o, e) =>
{
if (e.Error == null)
{
var result = (IDictionary<string, object>)e.GetResultData();
//Dispatcher.BeginInvoke(() => MyData.ItemsSource = result);
var tempname = (string)result["name"];
name = (string)result["name"];
NameTextBlock.Text = "[" + name + "]";
}
else
{
MessageBox.Show(e.Error.Message);
}
};
_fbClient.GetAsync("/me");
//======> NameTextBlock.Text = "[" + name + "]";
}
catch
{
MessageBox.Show("Failed.. deal with issues.");
}
finally
{
NameTextBlock.Text = "[" + name + "]";
}
誰かが正しい用語が間違ったスレッドからUI要素をくださいアクセスしようとするためであるものを私に思い出させることはできますか?私はそれで眠りを失うだろう! ^^ – Smudge202