2008-09-17 39 views
6

Đoán của tôi là các biến lớp ("class var") thực sự là toàn cục trong lưu trữ (nghĩa là, một cá thể cho toàn bộ ứng dụng).Các lọ lớp Delphi có lưu trữ cục bộ hoặc luồng cục bộ không?

Nhưng tôi tự hỏi liệu đây có phải là trường hợp hay không, hoặc là chúng là chủ đề trong lưu trữ (ví dụ tương tự như "threadvar") - một lần cho mỗi chủ đề.

Có ai biết không?

Chỉnh sửa: thay đổi "phạm vi" để "lưu trữ" vì điều này là trong thực tế các thuật ngữ chính xác, và những gì tôi sau (nhờ Barry)

Trả lời

7

Vâng, biến lớp học được scoped trên toàn cầu. Có một cái nhìn trong nguồn RTL để biết chi tiết về cách thực hiện các luồng. Dưới Win32 mỗi thread có thể có một khối bộ nhớ được cấp phát tự động cho nó trong quá trình tạo luồng. Vùng dữ liệu bổ sung này là những gì được sử dụng để chứa các luồng của bạn.

+0

Tôi không có nghi ngờ bạn là chính xác. Tự hỏi làm thế nào hệ thống nên làm việc mặc dù ... đây là một câu hỏi mà đòi hỏi một thẩm quyền "có/không" câu trả lời & Tôi tự hỏi có bao nhiêu phiếu tôi nên xem xét để được "thẩm quyền" trước khi "chấp nhận" câu trả lời. Phải làm gì, phải làm gì.....? – Graza

+0

Câu trả lời của Daniel là chính xác và tôi đã bình chọn nó. Tôi tự hỏi nếu bạn có thể sử dụng một chút trickery bằng cách tham khảo var lớp để một thread var? Đã không cố gắng - và sẽ không thử :) –

+0

@Lars - Tôi nghi ngờ rằng tham chiếu một trường * tiêu chuẩn * lớp, chứ không phải là một "lớp var" để threadvar sẽ đủ. Nếu cuộc đời của một đối tượng/biến nằm ngoài một thể hiện của đối tượng giới thiệu, và một luồng là cần thiết, thì thời gian tồn tại này đã được cung cấp, do đó không cần phải làm gì thêm nữa. – Graza

9

Biến lớp được sắp xếp theo thuộc tính hiển thị thành viên của chúng và có bộ nhớ chung, không phải lưu trữ chuỗi.

Phạm vi là khái niệm cú pháp và liên quan đến những số nhận dạng nào có thể nhìn thấy từ đâu. Đó là lưu trữ của biến mà là mối quan tâm ở đây.

+0

Điểm tốt - Tôi đã có một cảm giác ngữ nghĩa của tôi đã không hoàn toàn đúng ... – Graza

1

Biến lớp giống như các lớp: toàn cục và duy nhất cho ứng dụng.

Các vấn đề liên quan