Я пытаюсь заблокировать объект "boxed" в приложении С#, это невозможно?
class t
{
System.Object t_x = new object();
public t(int p)
{
t_x = p;
}
public void w()
{
lock (t_x)
{
for (int i = 0; i < 4; i++)
{
{
t_x = ((int)t_x) + 1;
Console.WriteLine(t_x);
Thread.Sleep(1000);
}
}
}
}
}
В другом классе я могу запустить 2 потока:
Thread b1 = new Thread(new ThreadStart(t1.w));
b1.Start();
Thread b2 = new Thread(new ThreadStart(t1.w));
b2.Start();
Однако часть не заблокирована. Когда я блокирую произвольный объект (т.е. Один созданный и не модифицированный как объект a = новый объект()), он хорошо блокируется. Является ли операция бокса каким-то образом "депромотами" моего объекта?