C#使用Sleep(Int32)方法實現(xiàn)動態(tài)顯示時間
一、涉及到的知識點
在使用線程時,經(jīng)常會用到Sleep方法,Sleep方法用于將線程掛起指定的時間,時間的單位為毫秒。本實例中將會創(chuàng)建一條線程,并在線程的While循環(huán)中使用Sleep方法將線程掛起一秒鐘,使線程每隔一秒鐘獲取一次系統(tǒng)時間,并將系統(tǒng)時間顯示到TextBox控件中。
本實例實現(xiàn)時主要用到了多線程技術(shù)和線程的Sleep方法。
實例中使用了Lambda表達(dá)式,實現(xiàn)了Thread類的構(gòu)造方法中的ThreadStart委托所約定的方法。
1.Sleep(Int32)方法
將當(dāng)前線程掛起指定的毫秒數(shù)。
public static void Sleep (int millisecondsTimeout);
參數(shù)
millisecondsTimeout Int32
掛起線程的毫秒數(shù)。 如果 millisecondsTimeout 參數(shù)的值為零,則該線程會將其時間片的剩余部分讓給任何已經(jīng)準(zhǔn)備好運行的、具有同等優(yōu)先級的線程。 如果沒有其他已經(jīng)準(zhǔn)備好運行的、具有同等優(yōu)先級的線程,則不會掛起當(dāng)前線程的執(zhí)行。
例外
ArgumentOutOfRangeException
超時值為負(fù)且不等于 Infinite。
2.Parallel.Invoke方法
詳見本作者的其他文章,C#用Parallel.Invoke 方法盡可能并行執(zhí)行提供的每個線程
二、 實例:用Sleep方法動態(tài)時間
// 使用Sleep方法動態(tài)時間 namespace _065 { public partial class Form1 : Form { private Label? label1; private static TextBox? textBox1; public Form1() { InitializeComponent(); Load += Form1_Load; } private void Form1_Load(object? sender, EventArgs e) { // // label1 // label1 = new Label { AutoSize = true, Location = new Point(12, 8), Name = "label1", Size = new Size(188, 17), TabIndex = 0, Text = "每秒種獲取一次系統(tǒng)時間并顯示:" }; // // textBox1 // textBox1 = new TextBox { ForeColor = Color.Red, Location = new Point(12, 29), Multiline = true, Name = "textBox1", Size = new Size(360, 45), TabIndex = 1 }; // // Form1 // AutoScaleDimensions = new SizeF(7F, 17F); AutoScaleMode = AutoScaleMode.Font; ClientSize = new Size(384, 86); Controls.Add(textBox1); Controls.Add(label1); Name = "Form1"; StartPosition = FormStartPosition.CenterScreen; Text = "用Sleep方法動態(tài)顯示時間"; Sleep_Func(); } private static void Sleep_Func() { Thread th = new( //創(chuàng)建線程對象 () => //使用Lambda表達(dá)式 { while (true) //無限循環(huán) { Parallel.Invoke(//在窗體線程中執(zhí)行 () => //使用Lambda表達(dá)式 { textBox1!.Text = //顯示系統(tǒng)時間 DateTime.Now.ToString("F"); }); Thread.Sleep(1000); //線程掛起1000毫秒 } }) { IsBackground = true //設(shè)置線程為后臺線程 }; th.Start(); //開始執(zhí)行線程 } } }
到此這篇關(guān)于C#使用Sleep(Int32)方法實現(xiàn)動態(tài)顯示時間的文章就介紹到這了,更多相關(guān)C#動態(tài)顯示時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用C#對ADO.NET數(shù)據(jù)庫完成簡單操作的方法
用C#對ADO.NET數(shù)據(jù)庫完成簡單操作的方法...2007-03-03C#利用WMI操作DNS服務(wù)器(可遠(yuǎn)程操作,需要相應(yīng)權(quán)限)
C#利用WMI操作DNS服務(wù)器(可遠(yuǎn)程操作,需要相應(yīng)權(quán)限)...2007-03-03