[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 07/09 19:51 / Filesize : 230 KB / Number-of Response : 995
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]
|
↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました |
ふらっとC#,C♯,C#(初心者用) Part23
- 30 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 16:36:16 ]
- C# + VS2005 ExpressでのWindowsフォームアプリケーションの
開発に関してお聞きしたいのですが、フォーム(Form)上にテキストボックス(TextBox) が配置されていて、あるタイミングでクラス(Woker)のメソッド(Method)を呼び出します。 この時、UIをフリーズさせないようにMethodはデリゲートとBeginInvokeを使用した 非同期呼び出しで呼び出され、処理終了後にコールバック(MethodDoneEvent)を使用してTextBoxに 取得した内容を表示します。 Methodでは「任意のWebサーバにHTTPで接続しファイルをダウンロードしてくる」 といった処理が行われているのですが、その際Methodの中で 1.通信の準備 2.Webサーバへの接続 3.ヘッダの取得 4.ファイルの取得 5.通信の後始末 と5つのステップの処理が行われています。 この時1〜5の処理の実行と結果を、逐一Form上のTextBoxに表示したいのですが MethodDoneEventが呼ばれる時には既に5までの処理が完了しているので リアルタイム表示にはなりません。 1〜5までの処理をリアルタイムでTextBoxに表示させたい場合、1〜5の各処理を分割し それぞれを非同期呼び出し・コールバックからの結果取得・反映を行う必要があるのでしょうか? それとも他に呼出元のFormに対して情報を通知する手段は存在するのでしょうか? 単純にWorkerにFormのインスタンスを保持させて、Method内で直接Form上のTextBoxを更新させれば 早いのですが.NET Frameworkの設計で「フォームメソッド以外にフォームの要素を変更させるのは好ましくない」 といった感じのことを聞いた事があるので・・・・
|

|
[ 続きを読む ] / [ 携帯版 ] 
全部読む
次100
最新50
▲ [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<230KB
read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef