我在我的机器人中使用了webClient:
using System;
using System.Net;
namespace Game_Bot
{
class WebClientEx : WebClient
{
public CookieContainer CookieContainer { get; private set; }
public WebClientEx()
{
CookieContainer = new CookieContainer();
}
public void ClearCookies()
{
CookieContainer = new CookieContainer();
}
protected override WebRequest GetWebRequest(Uri address)
{
var request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = CookieContainer;
}
return request;
}
}
}
我有一个webclient对象。 有很多方法可以使用它。如果两个线程想要使用该webClient下载我得到错误,说webClent当时只能运行一个操作。 如何修改该类,以便当一个线程使用它时另一个线程必须等待。 我需要以某种方式锁定它。
答案 0 :(得分:2)
答案 1 :(得分:0)
例如,您可以使用互斥锁 当第一个客户端发出请求时,您将获得互斥锁的属性,并在呼叫完成时释放它 当其他客户端发出请求时,首先等待互斥锁并完成作业。