0

System.IO.FileStreamどこかからファイルを読み取り、クラスを使用してディスクに書き留めるWebアプリケーションで作業しています。これらのファイルを書き込んでいる間、ある種のプログレスバーまたは更新バーを表示することは可能ですか?

これがサンプルコードです

using (Stream input = getResponse.GetResponseStream())
            {
                using (FileStream output = new FileStream(saveTo1, FileMode.OpenOrCreate))
                {
                    int bytesRead;

                    while ((bytesRead = input.Read(buffer, 0, buffer.Length))>0)
                    {
                        output.Write(buffer, 0, bytesRead);
                    }
                }
            }

前もって感謝します。:)

4

2 に答える 2

1

UpdateProgressを使用してみてください。

するべきこと?

  • 更新パネルをクリックしたときにファイルストリームを書き込むボタンを配置し、「UPanelOperation」と言います。
  • コンテンツテンプレートタグを閉じる前に、更新パネルに次のコード行を配置します。
  • 次のコード行にある画像に画像名を変更してください

    <asp:UpdateProgress ID="updateProgress" runat="server" DisplayAfter="0" AssociatedUpdatePanelID="UPanelOperation">
        <ProgressTemplate>
            <div id="progressBackgroundFilter">
            </div>
            <div align="center">
                <img src="../../css/images/1-0.gif" />&nbsp;Please Wait...</div>
        </ProgressTemplate>
    </asp:UpdateProgress>
    
于 2012-06-28T06:53:02.483 に答える
0

もちろんできます。次のようにコードを編集します。

while ((bytesRead = input.Read(buffer, 0, buffer.Length))>0)
                {
                    label1.Text = buffer.ToString() + " bytes transfered.";
                    output.Write(buffer, 0, bytesRead);
                }

...ここで、label1は、フォームに配置するコントロールです。

于 2012-06-28T06:53:15.573 に答える