委托 C# 添加定时任务

qq_29783739 2015-08-17 05:53:58
session 运行时 从数据库拿出数据 判断时间为今天的 就给他新建一个Timer控件 现在的问题是 绑定委托的时候还没到时间就直接运行了 方法 求改动方案
代码如下


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using DCModel;

public class Global : System.Web.HttpApplication
{
public Global()
{
}
public static List<DCModel.Task_Content> ss()
{

DataClassesDataContext dc = new DataClassesDataContext();
var resurt = (from p in dc.Task_Content
where p.ReleaseState == 1
select p).ToList();
return resurt;
}

void Application_Start(object sender, EventArgs e)
{


}

public void time(string sj, int id, string take)
{
System.Timers.Timer myTimer = new System.Timers.Timer();
DateTime dt = DateTime.Now;
DateTime strTime;
strTime = Convert.ToDateTime(sj);
string dtAfter= strTime.ToString();
DateTime dtTime = Convert.ToDateTime(dtAfter);
TimeSpan ts1 = new TimeSpan(dt.Ticks);
TimeSpan ts2 = new TimeSpan(dtTime.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
string dateDi = ts.TotalSeconds.ToString();
string strDatedi = dateDi.Substring(0, dateDi.IndexOf('.'));
int dateDiff = Convert.ToInt32(strDatedi);
myTimer.Interval = dateDiff * 1000;
myTimer.Enabled = true;
myTimer.Elapsed += OnTimedEvent(id, take);
GC.KeepAlive(myTimer);
}

void Application_End(object sender, EventArgs e)
{

}

void Application_Error(object sender, EventArgs e)
{

}
void Session_Start(object sender, EventArgs e)
{
try
{
List<DCModel.Task_Content> resurt = ss();

foreach (var a in resurt)
{
DateTime aa = (DateTime)a.ReleaseStartTime;

if (aa.Subtract(DateTime.Now).Days == 0)
{


time("" + aa.ToString("hh:mm"), a.ID, a.TaskID);


}

}
}
catch (Exception ex)
{
throw ex;
}
}

void Session_End(object sender, EventArgs e)
{



}
private static System.Timers.ElapsedEventHandler OnTimedEvent(int id, string take)
{
DataClassesDataContext dc = new DataClassesDataContext();
var user = dc.Task_Content.Single(u => u.ID == id);
user.ReleaseState = 0;
dc.SubmitChanges();

var users = dc.Task.Single(u => u.TaskID == take);
users.ReleaseState = 0;
dc.SubmitChanges();

return null;
}
}
...全文
126 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Poopaye 2015-08-18
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/391812021 看这贴吧,楼主的写法就是正确的
qq_29783739 2015-08-18
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
myTimer.Elapsed += 右侧的是函数!右侧的是函数!右侧的是函数!
...... 什么意思?具体怎么改?
Poopaye 2015-08-17
  • 打赏
  • 举报
回复
myTimer.Elapsed += 右侧的是函数!右侧的是函数!右侧的是函数!

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧