public class A { }
public class B:A { }
void foo()
{
A a = new B();
B b = a as B;
}
在特定情况下,<代码>24(a)等于lock(b)
?
我指的是,锁定是相互排斥的吗? 如果I lock(a)
in one read and lock(b)
in another thread,我将能相互排斥地查阅早先建立的B
的单一例子?
public class A { }
public class B:A { }
void foo()
{
A a = new B();
B b = a as B;
}
在特定情况下,<代码>24(a)等于lock(b)
?
我指的是,锁定是相互排斥的吗? 如果I lock(a)
in one read and lock(b)
in another thread,我将能相互排斥地查阅早先建立的B
的单一例子?
是lock(a){}
相当于lock(b){}
。
文件24(a)指出,24小时声明是一个关键部分,为某一参考类别获得相互排斥锁。
<代码>a和b>
均为同一物体,因此相同。 实际<代码>a和b
均指同一物体。
不同参赛类型之间的投放作业并不改变下游物体的操作类型;它只改变用作该物体参考的价值类型。
快速测试方案表明,它确实有记录方式:
namespace ConsoleApplication2
{
public class A { }
public class B : A { }
class Program
{
static A a = new B();
static void MyThread()
{
B b = a as B;
lock (b)
{
Console.WriteLine("b lock acquired");
Console.WriteLine("releasing b lock");
}
}
static void Main(string[] args)
{
System.Threading.Thread t = new System.Threading.Thread(MyThread);
lock(a)
{
Console.WriteLine("a lock acquired");
t.Start();
System.Threading.Thread.Sleep(10000);
Console.WriteLine("Releasing a lock");
}
}
}
}
a lock acquired
... 10 seconds pass
releasing a lock
b lock acquired
releasing b lock
What is the use of default keyword in C#? Is it introduced in C# 3.0 ?
I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...
I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...
I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...
I have two EF entities. One has a property called HouseNumber. The other has two properties, one called StartHouseNumber and one called EndHouseNumber. I want to create a many to many association ...
How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...
Since I cannot order my dictionary, what is the best way of going about taking key value pairs and also maintaing an index?
Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...