イベントStatusChanged
& ProgressChanged
で進行状況を示す要求データをアップロードするGetResponseStream()
を持つHttpHelper
クラスがあるとします。機能非同期/非ブロック化の方法に関するガイダンスが必要
public MemoryStream GetResponseStream() {
...
Status = Statuses.Uploading; // this doesn't raise StatusChanged
// write to request stream
... // as I write to stream, ProgressChanged doesn't get raised too
Status = Statuses.Downloading; // this too
// write to response stream
... // same here
Status = Statuses.Idle; // this runs ok. Event triggered, UI updated
}
コード@pastebin。 GetRequestStream()
を使用してクラスを呼び出していた場合、クラス自体はうまく動作します。
次にクラス自体は動作しますが、イベント育てられていないようです。私はそれがブロックされているUIスレッドと関係していると思う。 _dispatcher
& Task
のすべてのものを使用することなく、使用するクラスのためのより簡単な/クリーナーがそれを使用するように、クラスをどのように再コード化することができますか?
また、私はイベント/ UIが更新されない原因を確かに知りたいと思います。コードが同期していても、変更されたプロパティ/イベントを実行することはできません。
PasteBin構文の強調表示をC#に設定する必要があります。 http://pastebin.com/FeAPB6rU – SLaks
@SLaks、私に通知してくれてありがとう、PHP yestをやっていて、言語を変更するのを忘れていたに違いない。 –