14 个解决方案
#1
控制台程序不是可以传递参数吗,判断参数啊
然后任务计划里不同时间启动传递进不同的参数即可
然后任务计划里不同时间启动传递进不同的参数即可
#2
主要是我没有搞个任务计划,不知道怎么做,而且这个只是在服务器中运行,更新数据库中的数据就可以了,不用传参数
#3
如果你用的是sql server 的话,有个简单的方法,用数据库中的WAITFOR 命令做定时任务
#4
#5
Thread.Sleep
#6
假如你有20个任务,你还不能写“一个”控制台程序(因为你设计不了),你应该创建20个程序,有公用的部分引用一个公用的工程(编译为DLL)即可。
#7
用windows service
#8
假如你有20个任务,你还不能写“一个”控制台程序(因为你设计不了),你应该创建20个程序,有公用的部分引用一个公用的工程(编译为DLL)即可。
#9
Thread.Sleep
#10
任务计划是系统功能
不明白百度一下
你只要做好你的逻辑处理就行了
系统到时间会自动执行你的控制台程序
执行完自动退出就好
如果你有办法把3个功能做到一个控制台程序里去,通过启动控制台程序时传入不同参数执行不同功能
那么只要在添加任务计划的时候指定参数就可以了
如果实在弄不明白,干脆做成3个程序,不同时间调用不同程序好了
不明白百度一下
你只要做好你的逻辑处理就行了
系统到时间会自动执行你的控制台程序
执行完自动退出就好
如果你有办法把3个功能做到一个控制台程序里去,通过启动控制台程序时传入不同参数执行不同功能
那么只要在添加任务计划的时候指定参数就可以了
如果实在弄不明白,干脆做成3个程序,不同时间调用不同程序好了
#11
#12
建议做成一个windows service,使用timer计时器来实现定时执行的功能
#13
class Program
{
public delegate int MyFunDel();
static void Main(string[] args)
{
ThreadPool.QueueUserWorkItem((e) => {
DateTime time;
while (true)
{
time = DateTime.Now.ToLocalTime();
if (time.ToLongTimeString().Equals("16:08:00"))
{
new MyFunDel(MyFun).BeginInvoke(new AsyncCallback(MyAsyncCallback), null);
Thread.Sleep(500);
}
if (time.Second == 0)
{
Console.WriteLine("{0} {1}", time.ToShortDateString(), time.ToShortTimeString());
Thread.Sleep(500);
}
Thread.Sleep(500);
}
});
Console.ReadKey();
}
static int MyFun()
{
Console.WriteLine("服务器开始执行数据库操作.. 线程:{0}", Thread.CurrentThread.ManagedThreadId);
DateTime time = DateTime.Now;
Thread.Sleep(5000); //操作数据库
return (DateTime.Now - time).Seconds; //返回执行持续时间
}
//异步委托回调函数
static void MyAsyncCallback(IAsyncResult result)
{
AsyncResult aResult = (AsyncResult)result; //封装类 通过接口 实现多态
MyFunDel addDel = (MyFunDel)aResult.AsyncDelegate; //封装委托
int num = addDel.EndInvoke(result); //获取异步操作结果
string str = string.Format("{0} 操作数据库持续时间:{1}秒 线程:{2}",DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString(), num, Thread.CurrentThread.ManagedThreadId);
Console.WriteLine(str);
File.AppendAllText(@"c:/log.txt", str);
}
}
用控制台程序实现需要涉及很多因素,比如判断是否被异常终止,是否已完成操作等等。
#14
class Program
{
public delegate int MyFunDel();
static void Main(string[] args)
{
ThreadPool.QueueUserWorkItem((e) => {
DateTime time;
while (true)
{
time = DateTime.Now.ToLocalTime();
if (time.ToLongTimeString().Equals("16:08:00"))
{
new MyFunDel(MyFun).BeginInvoke(new AsyncCallback(MyAsyncCallback), null);
Thread.Sleep(500);
}
if (time.Second == 0)
{
Console.WriteLine("{0} {1}", time.ToShortDateString(), time.ToShortTimeString());
Thread.Sleep(500);
}
Thread.Sleep(500);
}
});
Console.ReadKey();
}
static int MyFun()
{
Console.WriteLine("服务器开始执行数据库操作.. 线程:{0}", Thread.CurrentThread.ManagedThreadId);
DateTime time = DateTime.Now;
Thread.Sleep(5000); //操作数据库
return (DateTime.Now - time).Seconds; //返回执行持续时间
}
//异步委托回调函数
static void MyAsyncCallback(IAsyncResult result)
{
AsyncResult aResult = (AsyncResult)result; //封装类 通过接口 实现多态
MyFunDel addDel = (MyFunDel)aResult.AsyncDelegate; //封装委托
int num = addDel.EndInvoke(result); //获取异步操作结果
string str = string.Format("{0} 操作数据库持续时间:{1}秒 线程:{2}",DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString(), num, Thread.CurrentThread.ManagedThreadId);
Console.WriteLine(str);
File.AppendAllText(@"c:/log.txt", str);
}
}
用控制台程序实现需要涉及很多因素,比如判断是否被异常终止,是否已完成操作等等。
#1
控制台程序不是可以传递参数吗,判断参数啊
然后任务计划里不同时间启动传递进不同的参数即可
然后任务计划里不同时间启动传递进不同的参数即可
#2
控制台程序不是可以传递参数吗,判断参数啊
然后任务计划里不同时间启动传递进不同的参数即可
主要是我没有搞个任务计划,不知道怎么做,而且这个只是在服务器中运行,更新数据库中的数据就可以了,不用传参数
#3
如果你用的是sql server 的话,有个简单的方法,用数据库中的WAITFOR 命令做定时任务
#4
控制台程序不是可以传递参数吗,判断参数啊
然后任务计划里不同时间启动传递进不同的参数即可
主要是我没有搞个任务计划,不知道怎么做,而且这个只是在服务器中运行,更新数据库中的数据就可以了,不用传参数
http://188.93.174.57/#newwindow=1&q=windows%E4%BB%BB%E5%8A%A1%E8%AE%A1%E5%88%92%E8%AE%BE%E7%BD%AE
#5
Thread.Sleep
#6
假如你有20个任务,你还不能写“一个”控制台程序(因为你设计不了),你应该创建20个程序,有公用的部分引用一个公用的工程(编译为DLL)即可。
#7
用windows service
#8
假如你有20个任务,你还不能写“一个”控制台程序(因为你设计不了),你应该创建20个程序,有公用的部分引用一个公用的工程(编译为DLL)即可。
#9
Thread.Sleep
#10
任务计划是系统功能
不明白百度一下
你只要做好你的逻辑处理就行了
系统到时间会自动执行你的控制台程序
执行完自动退出就好
如果你有办法把3个功能做到一个控制台程序里去,通过启动控制台程序时传入不同参数执行不同功能
那么只要在添加任务计划的时候指定参数就可以了
如果实在弄不明白,干脆做成3个程序,不同时间调用不同程序好了
不明白百度一下
你只要做好你的逻辑处理就行了
系统到时间会自动执行你的控制台程序
执行完自动退出就好
如果你有办法把3个功能做到一个控制台程序里去,通过启动控制台程序时传入不同参数执行不同功能
那么只要在添加任务计划的时候指定参数就可以了
如果实在弄不明白,干脆做成3个程序,不同时间调用不同程序好了
#11
#12
建议做成一个windows service,使用timer计时器来实现定时执行的功能
#13
class Program
{
public delegate int MyFunDel();
static void Main(string[] args)
{
ThreadPool.QueueUserWorkItem((e) => {
DateTime time;
while (true)
{
time = DateTime.Now.ToLocalTime();
if (time.ToLongTimeString().Equals("16:08:00"))
{
new MyFunDel(MyFun).BeginInvoke(new AsyncCallback(MyAsyncCallback), null);
Thread.Sleep(500);
}
if (time.Second == 0)
{
Console.WriteLine("{0} {1}", time.ToShortDateString(), time.ToShortTimeString());
Thread.Sleep(500);
}
Thread.Sleep(500);
}
});
Console.ReadKey();
}
static int MyFun()
{
Console.WriteLine("服务器开始执行数据库操作.. 线程:{0}", Thread.CurrentThread.ManagedThreadId);
DateTime time = DateTime.Now;
Thread.Sleep(5000); //操作数据库
return (DateTime.Now - time).Seconds; //返回执行持续时间
}
//异步委托回调函数
static void MyAsyncCallback(IAsyncResult result)
{
AsyncResult aResult = (AsyncResult)result; //封装类 通过接口 实现多态
MyFunDel addDel = (MyFunDel)aResult.AsyncDelegate; //封装委托
int num = addDel.EndInvoke(result); //获取异步操作结果
string str = string.Format("{0} 操作数据库持续时间:{1}秒 线程:{2}",DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString(), num, Thread.CurrentThread.ManagedThreadId);
Console.WriteLine(str);
File.AppendAllText(@"c:/log.txt", str);
}
}
用控制台程序实现需要涉及很多因素,比如判断是否被异常终止,是否已完成操作等等。
#14
class Program
{
public delegate int MyFunDel();
static void Main(string[] args)
{
ThreadPool.QueueUserWorkItem((e) => {
DateTime time;
while (true)
{
time = DateTime.Now.ToLocalTime();
if (time.ToLongTimeString().Equals("16:08:00"))
{
new MyFunDel(MyFun).BeginInvoke(new AsyncCallback(MyAsyncCallback), null);
Thread.Sleep(500);
}
if (time.Second == 0)
{
Console.WriteLine("{0} {1}", time.ToShortDateString(), time.ToShortTimeString());
Thread.Sleep(500);
}
Thread.Sleep(500);
}
});
Console.ReadKey();
}
static int MyFun()
{
Console.WriteLine("服务器开始执行数据库操作.. 线程:{0}", Thread.CurrentThread.ManagedThreadId);
DateTime time = DateTime.Now;
Thread.Sleep(5000); //操作数据库
return (DateTime.Now - time).Seconds; //返回执行持续时间
}
//异步委托回调函数
static void MyAsyncCallback(IAsyncResult result)
{
AsyncResult aResult = (AsyncResult)result; //封装类 通过接口 实现多态
MyFunDel addDel = (MyFunDel)aResult.AsyncDelegate; //封装委托
int num = addDel.EndInvoke(result); //获取异步操作结果
string str = string.Format("{0} 操作数据库持续时间:{1}秒 线程:{2}",DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString(), num, Thread.CurrentThread.ManagedThreadId);
Console.WriteLine(str);
File.AppendAllText(@"c:/log.txt", str);
}
}
用控制台程序实现需要涉及很多因素,比如判断是否被异常终止,是否已完成操作等等。