私のXamarin iOSストーリーボードにボタンがあります。このボタンは、コード内のメソッドをトリガします。このメソッドはHttpClient Web呼び出しを作成し、UIのステータス更新を行い、ユーザーが何が起きているかを知るようにします。以下のようなボタンイベント(または別のタスク)からUIを更新する方法
物事: はなど、「タイムアウトしました、「応答を待っている」、「送信は、」..私は、このためにUITextViewを持っ
私のことができるようにと主張するコードのいくつかの作品を見つけました。これは、私が試したことはないが、ボタンコード全体が実行終了した後でTextViewの値を変更するだけなので、新しいテキスト値はキューに入れられているが、イベント中は変更されていないようだ実行されている
私はこのようにトリガーされてからこれをやりたい方法:
ButtonRegister.TouchUpInside += EventSendRegisterRequest;
を
これは動作しません:
BeginInvokeOnMainThread(() =>
{
TextResponseRegister.Text = "Sending.";
});
はいずれも、この行います
BeginInvokeOnMainThread(() =>
{
TextResponseRegister.Text = "Sending.";
});
var c = new Communication.Communication();
var taskRegister = Task.Run(async() =>
{
return await c.RegisterUserAsync(username, password, password, email);
});
taskRegister.Wait(5000);
BeginInvokeOnMainThread(() =>
{
TextResponseRegister.Text = "Done.";
});
のみ
Done
がこれまでに表示されます。HERESに
EventSendRegisterRequest
のコードのexampled簡素化
InvokeOnMainThread(() =>
{
TextResponseRegister.Text = "Sending.";
});
を。
タスクまたはUIイベントからUIを更新したいと考えています。 どうすればいいですか?
private async void EventSendRegisterRequest(string username, string email, string password)
し、このようにその方法で更新を行う:このような非同期でのボタンイベントメソッドを飾る
gitなどでコード全体を共有できますか? – jzeferino