sách gpt4 ai đã đi

Xamarin - Java.Lang.Thread so với System.Threading.Thread - nên dùng cái nào?

In lại Tác giả: Space Dog Thời gian cập nhật: 2023-10-29 13:13:25 27 4
mua khóa gpt4 Nike

Trong một dự án Xamarin gần đây mà tôi đã làm việc, tôi có thể thấy rằng các nhà phát triển đã sử dụng Java.Lang.Thread cũng như Hệ thống.Threading.Thread(được sử dụng cho các hoạt động rất tương tự - như tải dữ liệu ở chế độ nền).

Tôi chỉ muốn biết rằng trong lớp Thread được thừa hưởng từ Dùng một lần Được sử dụng trong các dự án Xamarin Java.Lang.Thread Nguyên nhân đằng sau lỗi này là gì, hãy đảm bảo rằng lỗi này được xử lý chính xác (có nghĩa là đó là một mã bổ sung).

Cái nào hoạt động tốt hơn trong hệ sinh thái Xamarin?
Về cơ bản chúng có thể hoán đổi cho nhau được không?

1 Câu trả lời

Tôi chỉ muốn đề cập đến Hệ thống.Threading.Thread Có nguồn gốc từ Đối tượng CriticalFinalizer , đó là triển khai bảo mật tiêu chuẩn Mẫu dùng một lần từ Microsoft :

Đảm bảo rằng tất cả mã hoàn thiện trong các lớp dẫn xuất được đánh dấu là quan trọng.

Còn hơn là Java.Lang.Thread Chỉ nhận ra Dùng một lần Giao diện.

Một điểm khác biệt nữa giữa các lớp này là định nghĩa của chúng có đôi chút khác biệt. Chúng ta hãy xem tài liệu:

Lớp Java.Lang.Thread:

MỘT Chủ đề là một đơn vị thực thi đồng thời. Nó có ngăn xếp lệnh gọi riêng cho các phương thức được gọi, các đối số và biến cục bộ của chúng. Mỗi ứng dụng có ít nhất một luồng đang chạy khi nó được khởi động, luồng chính, trong chính Nhóm chủ đề. Thời gian chạy giữ các luồng của riêng nó trong nhóm luồng hệ thống.

Bài viết được liên kết cho biết việc sử dụng nhóm luồng được coi là lỗi thời.

Lớp System.Threading.Thread

Một tiến trình có thể tạo một hoặc nhiều luồng để thực thi một phần mã chương trình liên quan đến tiến trình. Sử dụng Chủ đềBắt đầu đại biểu hoặc Tham số hóaThreadStart ủy nhiệm để chỉ định mã chương trình được thực thi bởi một luồng. Tham số hóaThreadStart Đại biểu cho phép bạn truyền dữ liệu tới quy trình luồng.

Nó cũng bắt nguồn từ _Chủ đề :

Hiển thị lớp Thread với mã không được quản lý.

Giao diện này được sử dụng đểMã không được quản lýTruy cập các lớp được quản lý và không nên được gọi từ mã được quản lý.

Vì vậy, theo tôi thấy, luồng java-one là một cấu trúc logic bên trong JVM, trái ngược với c#-one là một luồng tiêu thụ không được quản lý. Tôi khuyên bạn nên so sánh tài nguyên của từng triển khai với nhau và quyết định nên sử dụng lớp nào cho phù hợp.

Nếu phần lớn mã của bạn nằm ở phía .NET, tôi khuyên bạn nên sử dụng triển khai CLR. Trong những trường hợp khác, tôi nghĩ bạn nên sử dụng triển khai JVM.

Xamarin - Java.Lang.Thread so với System.Threading.Thread - nên dùng cái nào? , 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/37478467/

27 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com