我正在尝试调用RESTful服务,但我真的不想等待响应(200/404/500)。
我知道这可能听起来微不足道但是,我有一个独特的场景,出于某种原因需要这个。我提出了这样的要求:
using (Stream stream = webRequest.GetRequestStream())
{
stream.BeginWrite(postData, 0, postData.Length, null, null);
}
这似乎有效,但感觉不对。这是不受欢迎的行为吗?如果是这样,那么首选方法是什么?
提前致谢
答案 0 :(得分:3)
请参阅MSDN:
每次调用BeginWrite时都必须调用一次EndWrite。您可以使用调用BeginWrite的相同代码或传递给BeginWrite的回调来执行此操作。
所以本身,不 - 这可能会导致泄密。但是,如果您启动 async 写入并立即处置stream
,则写入几乎肯定是关闭/处置的流(特别不太可能第二个线程具有均匀的在那时得到参与,更不用说完成写了)。也许可以开展Task
或ThreadPool
项目来定期Write
?
ThreadPool.QueueUserWorkItem(delegate {
using (Stream stream = webRequest.GetRequestStream()) {
stream.Write(postData, 0, postData.Length);
}
});