Google Reader! のような通信社の RSS からニュースを収集するアプリケーションがあります。一定期間、DB 内のリンクを更新するメソッドを呼び出したいのですが、それはアプリケーションの有効期間まで続きます。時計のようなもの!!! 休むことなく
スレッディングに関する情報は知っていますが、問題は次のとおりです。
Update メソッドはどこで呼び出すことができますか?
一部のクラスが他のクラスから派生し、プロジェクトでレイヤー化するために使用するクラスがいくつかあります
Global.asax でメソッドを呼び出します。
protected void Application_Start(object sender, EventArgs e)
{
Thread thread = new Thread(new ThreadStart(UpdateRss));
thread.Start();
Thread.Sleep(1000);
}
public void UpdateRss()
{
while (true)
{
using (LinkService linkSrv = new LinkService())
{
linkSrv.UpdateLinksFromRSS();
}
}
}
LinkService の UpdateLinksFromRSS の定義は次のとおりです。
public void UpdateLinksFromRSS()
{
List<RssInfo> q;
using (RssService RssSrv = new RssService())
{
q = RssSrv.GetRssInfoes();
}
foreach (var item in q)
{
AddLink(item);
}
}
正直なところ、問題は、次のように定義された BaseService にプロパティがあることです。
public static System.Web.Caching.Cache Cache
{
get { return HttpContext.Current.Cache; }
}
プロジェクトを実行すると!この行からエラーが発生しました:return HttpContext.Current.Cache;