C#獲取系統(tǒng)當(dāng)前日期和時(shí)間的示例詳解
使用DateTime結(jié)構(gòu)的Now靜態(tài)屬性可以輕松地獲取當(dāng)前系統(tǒng)時(shí)間。
DateTime結(jié)構(gòu)的Now靜態(tài)屬性只是得到一個(gè)系統(tǒng)時(shí)間對(duì)象,該時(shí)間對(duì)象不會(huì)隨著系統(tǒng)時(shí)間的變化而變化,如果要?jiǎng)討B(tài)顯示系統(tǒng)時(shí)間,可以使用計(jì)時(shí)器間隔地獲取系統(tǒng)時(shí)間對(duì)象并顯示。
可以適當(dāng)?shù)厥褂镁€程替代Timer控件。在窗體應(yīng)用程序開發(fā)過程中,應(yīng)當(dāng)盡量避免使用窗體線程做高強(qiáng)度的運(yùn)算或IO操作,如果窗體線程參與了過多的運(yùn)算,會(huì)導(dǎo)致用戶的操作不能及時(shí)分配到資源,用戶界面會(huì)出現(xiàn)卡或無響應(yīng)情況。
一實(shí)例
1.源碼
//使用DateTime的Now靜態(tài)屬性動(dòng)態(tài)獲取系統(tǒng)時(shí)間
namespace _053
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Load += Form1_Load;
}
private void Form1_Load(object? sender, EventArgs e)
{
SuspendLayout();
//
// Form1
//
AutoScaleDimensions = new SizeF(7F, 17F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(394, 41);
Name = "Form1";
StartPosition = FormStartPosition.CenterScreen;
Text = "動(dòng)態(tài)獲取系統(tǒng)時(shí)間";
ResumeLayout(false);
Thread thread = new(//創(chuàng)建線程
() => //使用lambda表達(dá)式
{
while (true) //無限循環(huán)
{
Invoke( //操作窗體線程
(MethodInvoker)delegate ()//使用匿名方法
{
Refresh();//刷新窗體
Graphics graphics = CreateGraphics(); //創(chuàng)建繪圖對(duì)象
graphics.DrawString("系統(tǒng)時(shí)間:" + //在窗體中繪出系統(tǒng)時(shí)間
DateTime.Now.ToString("yyyy年MM月dd日 HH時(shí)mm分ss秒"),
new Font("Times New Roman", 14),
Brushes.Blue,
new Point(10, 10));
});
Thread.Sleep(1000);//線程掛起1秒鐘
}
})
{
IsBackground = true //將線程設(shè)置為后臺(tái)線程
};
thread.Start(); //線程開始執(zhí)行
}
}
}
2.生成效果

1秒鐘一刷新。
二、相關(guān)知識(shí)點(diǎn)
1. Thread類
創(chuàng)建和控制線程,設(shè)置其優(yōu)先級(jí)并獲取其狀態(tài)。
(1)Thread.Sleep()
(2)Thread(ThreadStart)
初始化 Thread 類的新實(shí)例。
public Thread (System.Threading.ThreadStart start);
參數(shù)
- start
- ThreadStart
表示開始執(zhí)行此線程時(shí)要調(diào)用的方法的 ThreadStart 委托。
例如
ArgumentNullException
start 參數(shù)為 null。
(3)IsBackground
(4)Invoke( )
2. CreateGraphics()
3.DateTime.Now
4. (MethodInvoker)delegate ()
到此這篇關(guān)于C#獲取系統(tǒng)當(dāng)前日期和時(shí)間的示例詳解的文章就介紹到這了,更多相關(guān)C#獲取系統(tǒng)日期時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于C#實(shí)現(xiàn)文字轉(zhuǎn)語音功能
這篇文章將在C#中集成一個(gè)語音對(duì)象SpeechSynthesizer,可以根據(jù)填入的文字內(nèi)容自動(dòng)解析成語音并使用系統(tǒng)揚(yáng)聲器進(jìn)行語音播報(bào),感興趣的小伙伴可以了解下2025-02-02
C#與C++?dll之間傳遞字符串string?wchar_t*?char*?IntPtr問題
C#與C++?dll之間傳遞字符串string?wchar_t*?char*?IntPtr問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
C#動(dòng)態(tài)生成DropDownList執(zhí)行失敗原因分析
這篇文章主要介紹了C#動(dòng)態(tài)生成DropDownList執(zhí)行失敗原因分析,以一個(gè)實(shí)例形式分析了C#動(dòng)態(tài)生成DropDownList的相關(guān)注意要點(diǎn)與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
C# 利用IRawPixels接口遍歷柵格數(shù)據(jù)
本文主要介紹了利用IRawPixels接口遍歷柵格數(shù)據(jù)。具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-02-02
C# DataTable中Compute方法用法集錦(數(shù)值/字符串/運(yùn)算符/表等操作)
這篇文章主要介紹了C# DataTable中Compute方法用法,總結(jié)分析了DataTable中Compute方法常見的數(shù)值運(yùn)算操作、字符串操作、運(yùn)算符操作、表運(yùn)算等相關(guān)技巧,需要的朋友可以參考下2016-06-06
c#中的interface abstract與virtual介紹
abstract 與virtual : 方法重寫時(shí)都使用 override 關(guān)鍵字,interface中的方法和abstract方法都要求實(shí)現(xiàn)2013-07-07

