cuốn sách gpt4 ai đã làm

Mã hóa COM (luôn luôn) có cần thiết cho các đối tượng có cả hai mô hình luồng không?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 01:07:15 27 4
mua khóa gpt4 Nike

Điều này là do một câu hỏi khác Đã kích hoạt.

Cụ thể, tôi có một lớp COM đang chạy trong Cơ quan đăng ký CLSID được định nghĩa trong bởi vì có ThreadingModel of Cả hai .

Quá trình của chúng tôi vượt quaĐồng sáng tạokích hoạt đối tượng này (KHÔNG ĐồngTạoInstanceEx, nếu điều này quan trọng đối với các máy chủ dll đang xử lý)

đưa ra mộtCả haiMô hình sợi vàtài liệuCác quy tắc được liệt kê trong:

Mô hình luồng của máy chủ Căn hộ được chạy trong
-------------------------------------------------- ----
Cả hai | Cùng một căn hộ với khách hàng

Và đưa ra những gì Hans đã viết trong một câu trả lời khác:

... Marshal xảy ra khi lệnh gọi máy khách cần được thực hiện trên một luồng khác ... có thể xảy ra khi ThreadingModel được chỉ định trong phần tử comClass yêu cầu điều đó. trên một cái khác và máy chủ không an toàn theo luồng.

Kết luận sơ bộ của tôi là một vật thể như vậymãi mãiKhông cần phải mã hóa các cuộc gọi ngầm đến giao diện của nó vì đối tượng sẽ luôn sống trong cùng một căn hộ với khách hàng của nó.

Điều này có đúng không, ngay cả khi tiến trình máy khách chạy như STA ?

câu trả lời hay nhất

Có, có thể có sự sắp xếp.

Nếu máy khách của lớp COM của bạn đang chạy trong STA và bạn cố gắng gọi lớp của mình từ một đơn vị khác thì nó phải được mã hóa vào đơn vị đã tạo ra nó.

Thuật ngữ COM có thể thực sự khó hiểu. Trong trường hợp này, khi bạn đề cập đến "khách hàng", thực tế bạn có nghĩa là một chuỗi chứ không phải toàn bộ ứng dụng (như nó ngụ ý).

Cả hai Chỉ có nghĩa là mô hình luồng của máy chủ phù hợp với máy khách khởi tạo nó. Nghĩa là, khi bạn khởi tạo lớp của mình, nó sẽ áp dụng mô hình phân luồng của luồng đã tạo ra nó. Vì bạn khởi tạo máy chủ của mình trong STA nên máy chủ của bạn sẽ sử dụng STA, có nghĩa là nó chỉ có thể được gọi trên luồng đã tạo ra nó; nếu một luồng khác cố gắng gọi nó, thì nó sẽ được mã hóa thành luồng đã tạo ra nó.

Về c++ - Mã hóa COM (bao giờ) có cần thiết cho các đối tượng có cả hai mô hình luồng không? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/19847555/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress