【发布时间】:2013-07-23 08:46:04
【问题描述】:
问题?我有一个win服务,每分钟执行一个方法,示例代码:
protected override void OnStart(string[] args)
{
//Elapsed event
timer.Elapsed += new ElapsedEventHandler(OnElapsedTime);
timer.Interval = 60000;
//enable timer
timer.Enabled = true;
}
protected override void OnStop()
{
timer.Enabled = false;
}
private void OnElapsedTime(object source, ElapsedEventArgs e)
{
timer.Enabled = false;
SEND_DATA_TO_CLIENT();
timer.Enabled = true;
}
好的,现在方法 SEND_DATA_TO_CLIENT();是一种从数据库收集数据并将其发送到客户端的方法,我必须有第二种方法 PROCESS_DATA();一种在将数据发送到客户端之前处理数据的方法,但问题是这两种方法同时在数据库中的相同表上工作,所以我不想获得数据库锁定或其他一些数据库错误,并且使用计时器是方法的机会发生冲突,一种方法处理数据,另一种方法将数据发送到客户端,但它们必须同时工作,也必须分开工作,有没有办法用线程做这种事情?
【问题讨论】:
-
请将超过 7 行的句子改为逐步描述您的代码的功能、您希望它做什么以及您尝试做什么以使其做到这一点。
-
方法中的代码无关紧要,我要做的是同时运行前面提到的方法,不是用计时器而是用线程,全部
-
我说的不是你的代码,而是你的问题的解释,有点不清楚,不可读。
标签: c# windows multithreading windows-services