从Global.asax中的代码调用函数

时间:2013-04-05 04:18:15

标签: asp.net global-asax

如何从Global.asax中的asp页面(代码隐藏)访问控件或函数?

我使用下面的代码进行后台任务,此代码每隔60秒检查一次新电子邮件,我想更新一个标签,显示default.aspx中新电子邮件的计数

void Application_Start(object sender, EventArgs e) 
{
    AddTask("CheckEmails", 10);
}

private void AddTask(string name, int seconds)
{
    OnCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved);
    HttpRuntime.Cache.Insert(name, seconds, null, DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration,
    CacheItemPriority.NotRemovable, OnCacheRemove);
 }//addTask

 public void CacheItemRemoved(string k, object v, CacheItemRemovedReason r)
 {
    //Check New Emails and update label from .aspx
    AddTask(k, Convert.ToInt32(v));
 }//CacheItemRemoved

2 个答案:

答案 0 :(得分:0)

你为什么要这样做。请提供更多信息 虽然你可以创建一个Default page的对象并调用它的功能。
但如果这与页面无关,那么只使用它是好的。

编辑1

您无需从application start拨打电话。
您可以在页面加载(在登录页面后调用)上调用此函数。
您可以使用相同的密钥检查缓存中的现有值 如果存在则不要修改缓存
否则将您的值放入缓存中。

答案 1 :(得分:0)

为常用功能创建一个单独的类,将其放在app_code文件夹中,然后从Default.aspx和global.asax ....访问此函数。