Con trỏ đối tượng kiểu được sử dụng để thể hiện loại đối tượng. Điều này là cần cho:
- Phương pháp tra cứu (vtable)
- Kiểm tra phôi
- Tìm đối tượng
Type
nếu bạn gọi GetType
.
Trường khóa đồng bộ hóa chủ yếu được sử dụng để khóa. Nó chỉ được lấp đầy khi nó cần, và khi một khóa luôn luôn là không bị cản trở, CLR làm với một khóa "mỏng" mà không yêu cầu bất kỳ dữ liệu bên ngoài. Nếu không, đó là một mục trong một bảng toàn bộ quá trình - Tôi không biết chi tiết về những gì trong bảng, nhưng tôi sẽ tưởng tượng nó giống như một danh sách các chủ đề đang chờ trên màn hình của đối tượng. Tất nhiên, bit quan trọng nhất của thông tin là liệu khóa hiện có được giữ hay không, theo đó luồng nào và số đếm của nó là gì (do tính chất reentrant của các khóa .NET).
Đồng bộ hóa cũng được điền vào nếu bạn gọi GetHashCode()
và nó không bị ghi đè - nó sử dụng bảng quy trình để phân bổ số ổn định, về cơ bản. (Địa chỉ của đối tượng không đủ tốt vì nó có thể thay đổi theo thời gian.)
Nguồn
2009-10-27 07:04:58
Với tất cả các đối tượng thuộc loại thời gian cụ thể, thời gian chạy được cho là phải biết trừ khi nó ghi lại loại ở đâu đó ...? Đừng lo lắng về việc đọc loại nội dung đó, hãy lo lắng về mã của riêng bạn. –
@mP Chính xác - vậy tại sao nó không ghi lại thông tin đó cho các loại giá trị? Nó luôn luôn có giá trị biết làm thế nào công cụ của bạn làm việc. – TarkaDaal