J
John
The code:
---------
class sample{
static readonly object mylock=new object():
Hashtable Mytable=new Hashtable();
public void Add(object a)
{
Mytable.Add(a.Key,a);
}
public void Remove(object a)
{
Mytable.Remove(a.Key);
}
}
The Question:
-------------
What is the difference between :
1.
public void Add(object a)
{
lock(mylock)
{
Mytable.Add(a.Key,a);
}
}
2.
public void Add(object a)
{
lock(this)
{
Mytable.Add(a.Key,a);
}
}
3.
public void Add(object a)
{
lock(Mytable)
{
Mytable.Add(a.Key,a);
}
}
4.
public void Add(object a)
{
lock(Mytable.Syncroot)
{
Mytable.Add(a.Key,a);
}
}
5.
public void Add(object a)
{
lock(Syncroot)
{
Mytable.Add(a.Key,a);
}
}
---------
class sample{
static readonly object mylock=new object():
Hashtable Mytable=new Hashtable();
public void Add(object a)
{
Mytable.Add(a.Key,a);
}
public void Remove(object a)
{
Mytable.Remove(a.Key);
}
}
The Question:
-------------
What is the difference between :
1.
public void Add(object a)
{
lock(mylock)
{
Mytable.Add(a.Key,a);
}
}
2.
public void Add(object a)
{
lock(this)
{
Mytable.Add(a.Key,a);
}
}
3.
public void Add(object a)
{
lock(Mytable)
{
Mytable.Add(a.Key,a);
}
}
4.
public void Add(object a)
{
lock(Mytable.Syncroot)
{
Mytable.Add(a.Key,a);
}
}
5.
public void Add(object a)
{
lock(Syncroot)
{
Mytable.Add(a.Key,a);
}
}