初めてのポスター、長年の読者なので、気楽にやってください :)
多数のフォルダーを読み取り、各フォルダーの画像をダウンロードできるアプリケーションを作成しています。特定の画像を参照し、「選択したフォルダーにこの画像を使用する」ボタンをクリックできる WebBrowser コントロールがあります。
各「フォルダー」は、BackgroundWorker Thread 内で WebClient を使用する独自のダウンロード メソッドを持つオブジェクトとして表されます。
オブジェクトに画像の URL を設定すると、そのオブジェクトの backgroundworker が開始され、このコードが実行されます
using (WebClient client = new WebClient())
{
client.Proxy = null;
Stream stream = client.OpenRead(BackdropUrl);
Bitmap bitmap = new Bitmap(stream);
stream.Flush();
stream.Close();
e.Result = bitmap;
}
また、アプリケーションのメイン スレッドで Web クライアントを使用して、簡単な html の「スクレイピング」を行っています。
さて、問題に。アプリの使用を開始すると、すべて問題なく、リストを確認するとファイルがダウンロードされますが、しばらくすると、Web クライアントがランダムに応答しなくなるようです。Web ブラウザー コントロール内をブラウズすることはできますが、すべての Web クライアント実行コードが完了していないようで、次の 2 行のいずれかでハングします。
Stream stream = client.OpenRead(BackdropUrl);
Bitmap bitmap = new Bitmap(stream);
これがまだかなり漠然としていることはわかっていますが、できる限り説明しようとしました。画像を Bitmap オブジェクトに直接ダウンロードするためのより堅牢な方法を誰かが持っているでしょうか? つまり、ファイルに保存してから再度開くのですか?
どんな助けでも大歓迎です。