2012-05-04 8 views
-1

私は現在のversion.txtファイルの内容を読み込んで、それが同じかそれ以上であるかどうかを確認する非常に簡単なアップデータアプリケーションを作成しようとしています。オンラインの.txtファイルからテキストを素早く取得するには? (c#)

This post私は働くアプリケーションを作るのを助けましたが、それは私の主なアプリでかなりの休止を引き起こします。より速く動作するか、オンラインの.txtファイルからテキストを読み込むための簡単な方法がありますか?

UPD:何らかの理由で15秒遅れが最初に実行されただけで、結果的にDownloadStringはアプリが終了するまで速く動作します。

+0

あなたが何かをやっている間、あなたは非同期要求としてそれを実行することはできますか? – Rup

+0

私はむしろそれをやっていないか、アプリが最新のものであるように見えます。ユーザーは作業を開始し、しばらくしてバージョンが古くなり、すべての進捗状況が現在のバージョンと互換性がなくなるという通知を受け取ります。 – user1306322

+0

「ある時間の後に」はおそらく数秒以内になるでしょうか?スプラッシュ画面を持っていますか?スプラッシュ画面と非同期に実行できますか?遅れがwininetエンジンをロードしているならば、単純なHTTPリクエストを使ってWebサーバーへのソケット呼び出しを行い、wininetを回避することができますが、wininetが処理するプロキシサーバーなどを処理する必要がありますあなたのために。 – Rup

答えて

2

あなたは魔法のようにダウンロードを速くすることはできません。代わりに、別のスレッドでダウンロードを実行して、ユーザーが待たずにアプリを使用できるようにすることをおすすめします。

0

あなたは

WebClient client = new WebClient(); 
client.DownloadFile(url, fileName); 

そして、何あなたが重要な一時停止を意味しますかを試すことができますか? .txtファイルを取得しようとしたサーバーの応答時間ですか?

+0

テキストファイルが取り出されるホストが高速で、ファイル自体が非常に小さいため、正確に何が一時停止を引き起こすのか分かりません。 – user1306322

+0

"遅延"の書き込み位置をピンポイントしなかったか、接続が遅いだけです。 「遅延」が発生する場所を測定してみてください。 – Styxxy

+0

'DownloadFile'は残念ながら' DownloadString'と同じくらい動作します。遅れがどこから来ているのか分かりません。 VSプロファイラではパフォーマンスの急上昇や何も表示されませんが、しばらくの間停止するだけです。 – user1306322

0

これは、あなたがより速くアプリ作るためにあなたを助けることができる:

  • あなたはリサイズを使用している場合は、(それはこの場合のために本当に速い事を行います)、コンソールアプリケーションを使用してみてください。
  • winformsを使用する場合は、ワーカーを使用して後ろにいくつかの処理を行い、ユーザーがあなたのアプリと対話するのをブロックしないでください。これを読んでください:http://msdn.microsoft.com/en-us/library/cc221403(v=vs.95).aspx
+2

なぜコンソールアプリケーションは、フォームアプリケーションよりもWebクライアント要求を速くしますか? – Rup

+0

@Rup厳密にはWebクライアントのリクエストではありません。しかし、いくつかのケースでは、これは他の人には便利です(コンソールアプリケーション)、これを読んでください:http://stackoverflow.com/questions/2628164/do-console-apps-run-faster-than-gui-apps –

+0

[しかし、回答](http://stackoverflow.com/a/2628228)は、彼らは一般的にそうではないと言いますか?メッセージループ処理は実際にWebリクエストに大きな影響を与えますか? – Rup

関連する問題