是的,C# 的 WriteLine
方法在多線程環境下是安全的。但是,如果你在多個線程中同時寫入同一個 Console
對象,可能會導致輸出混亂或不一致。為了避免這種情況,你可以使用線程安全的日志記錄方法,例如使用 lock
關鍵字來確保同一時間只有一個線程可以訪問 Console.WriteLine
方法。
下面是一個簡單的示例,展示了如何在多線程環境中使用 lock
關鍵字來安全地使用 Console.WriteLine
方法:
using System;
using System.Threading;
class Program
{
static readonly object _lockObject = new object();
static void Main()
{
Thread thread1 = new Thread(Thread1Method);
Thread thread2 = new Thread(Thread2Method);
thread1.Start();
thread2.Start();
thread1.Join();
thread2.Join();
}
static void Thread1Method()
{
lock (_lockObject)
{
Console.WriteLine("Thread 1 output");
}
}
static void Thread2Method()
{
lock (_lockObject)
{
Console.WriteLine("Thread 2 output");
}
}
}
在這個示例中,我們創建了一個名為 _lockObject
的靜態對象,用于在多線程環境中同步對 Console.WriteLine
方法的訪問。這樣,即使多個線程同時調用 WriteLine
方法,輸出也會是線程安全的。