包含vb.net定時(shí)器線(xiàn)程的詞條

.net 怎么定時(shí)執(zhí)行程序

用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

關(guān)于vb.net定時(shí)器問(wèn)題

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í)行一下備份

vb.net如何判斷線(xiàn)程執(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)

關(guān)于VB.net Timer控件與多線(xiàn)程問(wèn)題

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)參考一下:

vb.net如何在windows控制臺(tái)下使用定時(shí)器

控制臺(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

vb.net 多線(xiàn)程與timer的問(wèn)題

可能原因: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)

營(yíng)銷(xiāo)型網(wǎng)站建設(shè)