在并發編程中,C# 句柄可以通過鎖定機制來確保線程安全性。可以使用 lock 關鍵字來鎖定關鍵部分的代碼,以確保同一時刻只有一個線程可以訪問該代碼塊。
示例代碼如下:
public class HandleManager
{
private object handleLock = new object();
private IntPtr handle;
public void SetHandle(IntPtr newHandle)
{
lock (handleLock)
{
handle = newHandle;
}
}
public IntPtr GetHandle()
{
lock (handleLock)
{
return handle;
}
}
}
在上面的示例中,handleLock 對象用于鎖定 SetHandle 和 GetHandle 方法中的關鍵部分代碼,確保同一時刻只有一個線程可以訪問這些方法。這樣就可以安全地操作句柄,避免出現并發訪問問題。
另外,還可以使用 Monitor 類來實現鎖定,其使用方式與 lock 關鍵字類似。在并發編程中,確保對共享資源的訪問是線程安全的非常重要,使用合適的鎖定機制可以有效地避免并發訪問引起的問題。