用Timer解決問(wèn)題的思路很簡(jiǎn)單,首先設(shè)定Timer類(lèi)的Interval屬性(單位是毫秒),也就是時(shí)間間隔;然后在Timer的Elapsed的事件里寫(xiě)執(zhí)行代碼,每過(guò)一個(gè)設(shè)置好的Interval時(shí)間間隔,將執(zhí)行一次Elapsed中的事件 (這和VB程序中的Timer控件基本沒(méi)有區(qū)別)。
讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、虛擬主機(jī)、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、黔江網(wǎng)站維護(hù)、網(wǎng)站推廣。
那知道了用什么類(lèi),這些代碼要寫(xiě)在哪里呢?把代碼寫(xiě)在Global.asax件中,在VS的項(xiàng)目上右鍵,點(diǎn)添加--》新建項(xiàng),選“全局應(yīng)用程序類(lèi)”,項(xiàng)目中就會(huì)有Global.asax文件了。
為了表達(dá)清楚直接上代碼(首先在Global.asax文件頭部引入system.Timers命名控件):
span style="font-size:18px;" public class Global : System.Web.HttpApplication
{
//在網(wǎng)站運(yùn)行時(shí)這段代碼同時(shí)啟動(dòng)
protected void Application_Start(object sender, EventArgs e)
{
System.Timers.Timer objTimer = new System.Timers.Timer();
objTimer.Interval = 60*1000; //這個(gè)時(shí)間單位:毫秒
objTimer.Enabled = true; //設(shè)置Timer類(lèi)的可用性
//將Timer的Elapsed事件綁定到新建立的timer對(duì)象上
objTimer.Elapsed += new ElapsedEventHandler(objTimer_Elapsed);
}/span
下面是在Timer的Elapsed事件中的代碼
span style="font-size:18px;"void objTimer_Elapsed(object sender, ElapsedEventArgs e)
{
string Time = DateTime.Now.ToShortTimeString();//獲得當(dāng)前時(shí)間
//從配置文件里獲得當(dāng)前設(shè)置的時(shí)間。
string OrderTime = ConfigurationManager.AppSettings["OrderFoodTime"];
/*測(cè)試數(shù)據(jù)*/
if(Time.Equals(OrderTime))
{
//如果時(shí)間相等,執(zhí)行你要執(zhí)行的操作,這里可以調(diào)用你程序中的其他類(lèi)的方法
}
}/span
Timer1.Interval = 500
Private Sub Timer1_Timer()
Timer1.Enabled = False
Dim ss As String
ss = Format(Now, "HH:mm:ss")
If ss = "12:00:00" Then
'執(zhí)行備份語(yǔ)句
End If
Timer1.Enabled = True
End Sub
還有一個(gè)辦法就是可以用SQL自身的功能,在SQL里面可以添加任務(wù) ,設(shè)置周期為每天,時(shí)間為12點(diǎn),到時(shí)候執(zhí)行一下備份
我給你一個(gè)簡(jiǎn)單的思路:
1,定義5個(gè)公共布爾變量,用來(lái)記錄5個(gè)線(xiàn)程的執(zhí)行情況
2,線(xiàn)程開(kāi)始變量賦值假,執(zhí)行完畢或者異常退出賦值真
3,一直用一個(gè)定時(shí)器掃描5個(gè)公共布爾變量----------隨時(shí)知道狀態(tài)
Timer 是在 主線(xiàn)程里執(zhí)行的,Thread 是在自己的線(xiàn)程中執(zhí)行的,多核心的CPU使用線(xiàn)程能提高處理能力?;氐侥愕膯?wèn)題,主線(xiàn)程如果卡死,timer就會(huì)失去響應(yīng),很正常的。請(qǐng)使用System.Timers.Timer類(lèi)吧。請(qǐng)參考一下:
控制臺(tái)調(diào)用Timer和窗體是類(lèi)似的。首先在項(xiàng)目引用里面加入System.Windows.Forms程序集,然后在代碼頂部引入命名空間:
Imports System.Windows.Forms
在控制臺(tái)的Module中聲明一個(gè)計(jì)時(shí)器:
Private WithEvents Timer1 As New Timer()
把計(jì)時(shí)器的Tick事件靜態(tài)綁定到處理函數(shù)中:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
'一些代碼
End Sub
在需要開(kāi)始計(jì)時(shí)的地方,修改其Interval、Enabled屬性:
Timer1.Interval = 1000
Timer1.Enabled = True
可能原因:timer不是由當(dāng)前線(xiàn)程創(chuàng)建的。
解決方案:在線(xiàn)程中實(shí)例化一個(gè)timer,然后觸發(fā),可以去試一下;或者通過(guò)委托,調(diào)用timer。
先不用線(xiàn)程試一下吧。
當(dāng)前標(biāo)題:包含vb.net定時(shí)器線(xiàn)程的詞條
文章分享:http://muchs.cn/article2/hcggic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、動(dòng)態(tài)網(wǎng)站、搜索引擎優(yōu)化、網(wǎng)站內(nèi)鏈、網(wǎng)站導(dǎo)航、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)