gpt4 book ai didi

c# - 在多个 HttpWebRequest 中使用相同的 CookieContainer 是否安全?

转载 作者:太空狗 更新时间:2023-10-30 01:24:17 24 4
gpt4 key购买 nike

我正在做一种 WebCrawler,我需要在请求之间保持 Cookies 状态。

我异步下载所有页面创建新的 HttpWebRequest 实例,但设置相同的 CookieContainer。页面可以写入和读取 cookie。

我可以安全地进行吗?有没有不是子类化 CookieContainer 并在所有方法上加锁的替代方法?

MSDN 说这个类不是线程安全的,但在实践中,我能做到吗?

最佳答案

根据documentation :

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

所以,如果你想在多个线程之间共享同一个实例,你应该确保正确的锁定。但是由于 CookieContainer 类的成员实际上不是由您的代码操作的,而是隐式地来自您创建的不同 HttpWebRequest 实例,因此很难正确同步,当然除了锁定您的请求这当然违背了我想你在这里试图实现的目的和并行性水平。

在实践中你是否会遇到问题是另一个话题。问题是文档(以及作者)不向您提供任何保证。

关于c# - 在多个 HttpWebRequest 中使用相同的 CookieContainer 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9911744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com