2010-08-24 4 views
5

위가 사실인지 아니면 참조 할당이 두 작업으로 분할되는지 궁금해했습니다정말 64 비트 머신에서도 참조가 할당됩니까?

Interlocked.Exchange을 사용해야하는 이유가 무엇입니까?

누구든지 확인할 수 있습니까?

여기 포인터 할당에 대해 이야기하고 있습니다 .- 정말 원자입니까?

답변

5

유형에 따라 다릅니다. 예를 들어 Int64 할당은 x64 모드에서는 원자 적이며 x64 모드에서는 원자 적입니다. string 할당은 참조 유형이므로 포인터를 지정하고 포인터의 크기는 x86 또는 x64 비트 모드에서 실행 중인지 여부에 따라 4 또는 8 바이트입니다.

+0

확실한가요? 64 비트 머신에서 실행하면 포인터는 8 바이트입니다. 실제로 원자입니까? –

+0

그렇습니다. 'IntPtr.Size' 속성을 체크 아웃하십시오 : http://msdn.microsoft.com/en-us/library/system.intptr.size.aspx 그러나 OS 모드로 혼동하지 마십시오. 컴파일하는 동안 64 비트 OS를 명시 적으로 지정하면 .NET 응용 프로그램을 x86 모드로 실행할 수 있습니다. –