Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 返回流并将其写入磁盘?_C#_Stream - Fatal编程技术网

C# 返回流并将其写入磁盘?

C# 返回流并将其写入磁盘?,c#,stream,C#,Stream,我有一个ASP.NETWebAPI项目,它返回一个响应HttpResponseMessage,我正在将该消息的内容设置为一个已用流初始化的StreamContent 我正在尝试对流所表示的文件进行一些基本的本地缓存,我可以返回流并将其写入磁盘,而不必等待它完成写入磁盘后再返回请求者吗 我正在考虑的另一种方法是将文件队列加载到本地缓存中,并将请求文件的id添加到队列中,然后将流作为响应发送回。然后让一个单独的工作进程处理队列,以便下次可以从本地缓存中检索文件 将流写入磁盘,然后返回对您不起作用吗?

我有一个ASP.NETWebAPI项目,它返回一个响应HttpResponseMessage,我正在将该消息的内容设置为一个已用流初始化的StreamContent

我正在尝试对流所表示的文件进行一些基本的本地缓存,我可以返回流并将其写入磁盘,而不必等待它完成写入磁盘后再返回请求者吗


我正在考虑的另一种方法是将文件队列加载到本地缓存中,并将请求文件的id添加到队列中,然后将流作为响应发送回。然后让一个单独的工作进程处理队列,以便下次可以从本地缓存中检索文件

将流写入磁盘,然后返回对您不起作用吗?我想这是我的问题,如果我开始在任务线程中读取流,同时将该流发送到客户端在那里读取,会发生什么?似乎读取一个流的两个进程不能很好地结束。我认为排队是正确的答案,但我想知道我是否遗漏了什么。
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, channelId);            
response.Content = new StreamContent(myStream);
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")

return response;