当前位置: 首页 > news >正文

用vs2010做网站并连数据库网站推广的方法有哪几种

用vs2010做网站并连数据库,网站推广的方法有哪几种,软件定制开发开什么发票,无锡专业网站建设Windows服务中使用的比较多的是定时器,但这种定时任务有个比较大的毛病:有时会莫名其妙地停止执行(长时间执行不完,假死),必须得手工重启Windows服务才能恢复正常。这个就太麻烦了。 有没有办法来实现定时…

Windows服务中使用的比较多的是定时器,但这种定时任务有个比较大的毛病:有时会莫名其妙地停止执行(长时间执行不完,假死),必须得手工重启Windows服务才能恢复正常。这个就太麻烦了。

有没有办法来实现定时器出现问题时自动重启定时器呢?我们做个小实验:

一、能否用Stop来中止定时器正在执行的任务?不行。

using System;
using System.Timers;namespace TestTimer
{internal class Program{private static int usingResource = 0;static int m = 0;static Timer timerTask = new Timer();static Timer timerMonitor = new Timer();static void Main(string[] args){//任务 定时器timerTask.AutoReset = true;timerTask.Interval = 1 * 1000;//1秒触发一次timerTask.Enabled = true;timerTask.Elapsed += TimerTask_Elapsed;timerTask.Start();//监控 定时器timerMonitor.AutoReset = true;timerMonitor.Interval = 1 * 1000;//1秒触发一次timerMonitor.Enabled = true;timerMonitor.Elapsed += TimerMonitor_Elapsed; ;timerMonitor.Start();Console.Read();}private static void TimerMonitor_Elapsed(object sender, ElapsedEventArgs e){Console.WriteLine("m={0}", m);if (m == 1){Console.WriteLine("set task stop");timerTask.Stop();}}private static void TimerTask_Elapsed(object sender, ElapsedEventArgs e){if (0 == System.Threading.Interlocked.Exchange(ref usingResource, 1)){m = new Random().Next(0, 2);//m只可能为0或1if (m == 0)Console.WriteLine("m=0 => {0:HH:mm:ss}", DateTime.Now);else{for (int i = 0; i < 999999999; i++){Console.WriteLine("m=1 => {0:HH:mm:ss}", DateTime.Now);System.Threading.Thread.Sleep(1000);}}System.Threading.Interlocked.Exchange(ref usingResource, 0);}else{Console.WriteLine("{0:yyyy-MM-dd HH:mm:ss}, 未取得锁,已退出", DateTime.Now);}}}
}

由上面代码可以得到下面的结果:

没有停止。

===================== 华丽的分隔线 =====================

二、直接中止线程来中止执行,并重启定时器:可以

下面的代码成功实现了用定时器TimerMonitor监控定时器TimerTask,如果有问题则立即中止TimerTask的线程,并实现重启TimerTask定时器的功能。

using System;
using System.Threading;
using System.Timers;
using Timer = System.Timers.Timer;namespace TestTimer
{internal class Program{private static int usingResourceTask = 0;private static int usingResourceMonitor = 0;static int m = 0;static Timer timerTask = new Timer();static Timer timerMonitor = new Timer();static Thread taskThread = null;static void Main(string[] args){//任务 定时器timerTask.AutoReset = true;timerTask.Interval = 2 * 1000;//2秒触发一次timerTask.Enabled = true;timerTask.Elapsed += TimerTask_Elapsed;timerTask.Start();//监控 定时器timerMonitor.AutoReset = true;timerMonitor.Interval = 2 * 1000;//2秒触发一次timerMonitor.Enabled = true;timerMonitor.Elapsed += TimerMonitor_Elapsed; ;timerMonitor.Start();Console.Read();}private static void TimerMonitor_Elapsed(object sender, ElapsedEventArgs e){if (0 == System.Threading.Interlocked.Exchange(ref usingResourceMonitor, 1)){Console.WriteLine("TimerMonitor {0}=> m={1}", DateTime.Now.ToString("HH:mm:ss"), m);if (m == 1)//用这个模拟出现了异常现象{m = 0;  //避免后一次快速进入Console.WriteLine("TimerMonitor {0}=> 即将中止 timerTask 线程 ", DateTime.Now.ToString("HH:mm:ss"));taskThread.Abort();Console.WriteLine("TimerMonitor {0}=> 已将 timerTask 执行停止", DateTime.Now.ToString("HH:mm:ss"));Thread.Sleep(10 * 1000);//暂停10秒,再重启定时器timerTask.Stop();Console.WriteLine("TimerMonitor {0}=> Task定时器在中止后10秒已设置为停止状态", DateTime.Now.ToString("HH:mm:ss"));//将任务的锁释放System.Threading.Interlocked.Exchange(ref usingResourceTask, 0);timerTask.Start();Console.WriteLine("TimerMonitor {0}=> Task定时器已设置为开启", DateTime.Now.ToString("HH:mm:ss"));}System.Threading.Interlocked.Exchange(ref usingResourceMonitor, 0);}else{//Console.WriteLine("TimerMonitor {0:yyyy-MM-dd HH:mm:ss}, 未取得锁,已退出", DateTime.Now);}}private static void TimerTask_Elapsed(object sender, ElapsedEventArgs e){taskThread = Thread.CurrentThread;if (0 == System.Threading.Interlocked.Exchange(ref usingResourceTask, 1)){m = new Random().Next(0, 2);//m只可能为0或1if (m == 0)Console.WriteLine("TimerTask m=0 => {0:HH:mm:ss}", DateTime.Now);else{for (int i = 0; i < 999999999; i++){Console.WriteLine("TimerTask m=1 => {0:HH:mm:ss}", DateTime.Now);System.Threading.Thread.Sleep(1000);}}System.Threading.Interlocked.Exchange(ref usingResourceTask, 0);}else{//Console.WriteLine("TimerTask {0:yyyy-MM-dd HH:mm:ss}, 未取得锁,已退出", DateTime.Now);}}}
}

http://www.dinnco.com/news/16753.html

相关文章:

  • 动态海报网站东莞seo快速排名
  • 网站标头图片切换关键词规划师工具
  • 重庆网站建设就找承越深圳招聘网络推广
  • 做it的中国企业网站淘宝seo优化是什么
  • wordpress 本地环境seo网站关键词优化
  • 宁化网站建设软文广告经典案例300大全
  • 深圳网站建设好吗不收费推广网站有哪些
  • 网站嵌套代码seo外贸网站制作
  • 建设企业银行u盾如何使用网站优化服务
  • ps网站头部免费二级域名注册申请
  • 好用的网站建设百度广告价格
  • 梅州市住房与城乡建设局网站如何把网站推广出去
  • 各种类型网站建设口碑好推广运营怎么做
  • 北京营销网站建站公司小红书推广方式
  • 做会所在哪个网站推广网络营销方案如何写
  • 抽奖怎么做网站北京刚刚传来特大消息
  • 做B2B网站如何盈利怎样推广自己的app
  • 电脑网站怎样给网页做适配域名注册信息怎么查
  • 网站建设网站公司的序网站推广广告
  • 网站里面的视频功能怎么做的武汉百度开户代理
  • 百度网站名称和网址百度快照怎么看
  • 网站推广代运营多少钱网络营销的策划方案
  • 网站正在建设中敬请网络营销是学什么
  • 电商网站怎么做CSS站长平台网站
  • 麦包包在网站建设方面谷歌海外推广怎么做
  • 电子商务网站建设论文摘要鄂尔多斯seo
  • 哪家公司建气调库400平米冷库转让学seo推广
  • 网站建设捌金手指下拉七免费涨粉工具
  • 个人域名备案麻烦吗东莞网站seo推广
  • 网络项目设计方案网站怎样优化seo