欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用Sleep(Int32)方法實(shí)現(xiàn)動(dòng)態(tài)顯示時(shí)間

 更新時(shí)間:2024年01月28日 08:48:33   作者:wenchm  
這篇文章主要為大家詳細(xì)介紹了C#如何使用Sleep(Int32)方法實(shí)現(xiàn)動(dòng)態(tài)顯示時(shí)間,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考下

一、涉及到的知識(shí)點(diǎn)

在使用線程時(shí),經(jīng)常會(huì)用到Sleep方法,Sleep方法用于將線程掛起指定的時(shí)間,時(shí)間的單位為毫秒。本實(shí)例中將會(huì)創(chuàng)建一條線程,并在線程的While循環(huán)中使用Sleep方法將線程掛起一秒鐘,使線程每隔一秒鐘獲取一次系統(tǒng)時(shí)間,并將系統(tǒng)時(shí)間顯示到TextBox控件中。

本實(shí)例實(shí)現(xiàn)時(shí)主要用到了多線程技術(shù)和線程的Sleep方法。

實(shí)例中使用了Lambda表達(dá)式,實(shí)現(xiàn)了Thread類的構(gòu)造方法中的ThreadStart委托所約定的方法。

1.Sleep(Int32)方法

將當(dāng)前線程掛起指定的毫秒數(shù)。

public static void Sleep (int millisecondsTimeout);

參數(shù)

millisecondsTimeout    Int32

掛起線程的毫秒數(shù)。 如果 millisecondsTimeout 參數(shù)的值為零,則該線程會(huì)將其時(shí)間片的剩余部分讓給任何已經(jīng)準(zhǔn)備好運(yùn)行的、具有同等優(yōu)先級(jí)的線程。 如果沒有其他已經(jīng)準(zhǔn)備好運(yùn)行的、具有同等優(yōu)先級(jí)的線程,則不會(huì)掛起當(dāng)前線程的執(zhí)行。

例外

ArgumentOutOfRangeException

超時(shí)值為負(fù)且不等于 Infinite。

2.Parallel.Invoke方法

詳見本作者的其他文章,C#用Parallel.Invoke 方法盡可能并行執(zhí)行提供的每個(gè)線程

二、 實(shí)例:用Sleep方法動(dòng)態(tài)時(shí)間

// 使用Sleep方法動(dòng)態(tài)時(shí)間
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)時(shí)間并顯示:"
            };
            // 
            // 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方法動(dòng)態(tài)顯示時(shí)間";
            Sleep_Func();
        }
        private static void Sleep_Func()
        {
            Thread th = new(      //創(chuàng)建線程對(duì)象
                () =>             //使用Lambda表達(dá)式
                {
                    while (true)  //無限循環(huán)
                    {
                        Parallel.Invoke(//在窗體線程中執(zhí)行
                          () =>   //使用Lambda表達(dá)式
                            {
                                textBox1!.Text = //顯示系統(tǒng)時(shí)間
                                    DateTime.Now.ToString("F");
                            });
                        Thread.Sleep(1000);      //線程掛起1000毫秒
                    }
                })
            {
                IsBackground = true   //設(shè)置線程為后臺(tái)線程
            };
            th.Start();               //開始執(zhí)行線程
        }
    }
}

到此這篇關(guān)于C#使用Sleep(Int32)方法實(shí)現(xiàn)動(dòng)態(tài)顯示時(shí)間的文章就介紹到這了,更多相關(guān)C#動(dòng)態(tài)顯示時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論