sum*_*mer 5 c# multithreading memorystream bytearray stream
我被困在一个地方.我正在从URL读取flv文件.我正在将其读取到Stream,然后将此Stream写入循环中的MemoryStream.当代码从循环中出来时,我将整个MemoryStream写入ByteArray,然后将此ByteArray写入硬盘上的本地文件.
由于此flv太大,因此在循环中处理需要花费大量时间.我正在考虑在多个线程中读取MemoryStream中的原始大流.这意味着将Stream分成10个部分,并将这些部分写入多个线程中的MemoryStream.我该怎么做呢?
我附上了我的代码.
//Get a data stream from the url
WebRequest req = WebRequest.Create(url);
WebResponse response = req.GetResponse();
using (Stream stream = response.GetResponseStream())
{
//Download in chuncks
byte[] buffer = new byte[1024];
//Get Total Size
int dataLength = (int)response.ContentLength;
//Download to memory
//Note: adjust the streams here to download directly to the hard drive
using (MemoryStream memStream = new MemoryStream())
{
while (true)
{
//Try to read the data
int bytesRead = stream.Read(buffer, 0, buffer.Length);
if (bytesRead == 0)
{
Application.DoEvents();
break;
}
else
{
//Write the downloaded data
memStream.Write(buffer, 0, bytesRead);
}
}
//Convert the downloaded stream to a byte array
byte[] downloadedData = memStream.ToArray();
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏谢谢
| 归档时间: |
|
| 查看次数: |
2667 次 |
| 最近记录: |