に現在の時刻を取得します。私は、現在の時刻を表示するために、次のコードを持っている:時間変化
static void Main(string[] args)
{
while (true)
{
ShowDate(GetTime(),GetDate());
//Here's my issue:
System.Threading.Thread.Sleep(1000);
}
}
//Clear Console and write current Date again.
static void ShowDate(String time, String date)
{
Console.Clear();
Console.WriteLine(date);
Console.WriteLine(time);
}
static string GetTime()
{
string timeNow = DateTime.Now.ToString("HH:mm:ss");
return timeNow;
}
static string GetDate()
{
string dateNow = DateTime.Now.ToString("dd.MM.yy");
return dateNow;
}
まあ、私の理解では、Thread.Sleep(1000)
は唯一、すべてが第二のプログラムの開始後に測定した時間を示しています。それで、完全に正しい時刻は示されません。私はThread.Sleep()
の値を低くしてみることもできますが、それはまだまだ不正確で、おそらく非効率的なものになります。 たとえば、システム自体が時間を更新するたびに時間を更新する方法はありますか?おそらくevent listener
のようなものでしょうか?
どのようにあなたがその「ちょっと不正確な」を意味しています:それは、コードの明瞭さとクリーンアップのため
IDisposable
にもたらす利益のためにasync/await
を活用、これは次のようになりますか? –
あなたは何を達成する必要がありますか? – NicoRiff
あなたが達成しようとしていることは明確ではありません。現在の日時を1秒間隔で表示したいだけですか? –