[英]C# equivalent of Java's synchronized (abc.class)
我想知道是否存在以下Java代碼的C#等價物:
synchronized (abc.class) {
// code here
}
如果沒有等價物,那我怎樣才能在C#中模擬它?
abc
是我在該計划中的一個課程。 abc
屬性和方法(其中一些是靜態的)是許多線程同時訪問的。 不要阻止班級! 這可能會導致代碼中出現很大問題。 相反,使用lock
構造從代碼中訪問靜態資源:
class Abc
{
private static object _resource;
static Abc()
{
_resource = new object();
}
public static void Method1()
{
lock (_resource)
{
// this will run for only one thread at a time
}
}
public static void Method2()
{
lock (_resource)
{
// this will run for only one thread at a time
}
}
}
此外,如果一個線程只需要讀取資源而不寫入資源,則可以使用ReadWriteLock
( Slim
)進行同步。
要鎖定整個類,請使用以下命令:
lock (typeof(abc))
{
// code here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.