|
分類:[ASP.NET (C#)]
WCF(.Net framwork3.5)を使用し数Gbyteのファイルをサーバからクライアントへダウンロードしています。
ダウンロードを途中で停止させようとしているのですが、(@部分)
サーバより取得した stream を Close しようとすると(A部分)
ファイルを全てReadしたのと同じ位時間がかかってしまいます。
(4GBのファイルでClose処理が完了するのに4〜5分掛かります)
なにかアドバイスを貰えれば助かります。
以上、よろしくお願いします。
サーバ---------------------------------
Stream GetFile()
{
FileStream fs = new FileStream("C:\Data\Hoge.bin");
return fs;
}
クライアント---------------------------------
void Download()
{
Stream stream = GetFile();
int readLen = 0;
do
{
byte[] buf = new byte[65536];
readLen = stream.Read(buf, 0, buf.Length);
if (this._cancel)
{
// キャンセルされたので停止する @
break;
}
} while (readLen > 0)
// A
stream.Close(); // Closeするのに時間がかかる
}
|