Tôi chưa bao giờ sử dụng Có thể vẽ đồng thời tùy chọn được đề cập trong trình tạo mặt lặp. Xem hình ảnh dưới đây:Điều gì có thể rút ra đồng thời xây dựng giao diện?
Ai đó có thể giải thích cho tôi sử dụng và mục đích của nó?
Tôi chưa bao giờ sử dụng Có thể vẽ đồng thời tùy chọn được đề cập trong trình tạo mặt lặp. Xem hình ảnh dưới đây:Điều gì có thể rút ra đồng thời xây dựng giao diện?
Ai đó có thể giải thích cho tôi sử dụng và mục đích của nó?
Bạn có thể sử dụng nó để thông báo cho AppKit rằng NSView
lớp con của bạn -drawRect:
dụ phương pháp thể được gọi từ một sợi thứ cấp.
Đó là 10.6+. Khi/nếu AppKit hiển thị chế độ xem không đồng bộ, -drawRect:
được thực hiện bằng cách sử dụng các khối đồng thời và -drawRect:
của bạn sẽ được gọi từ chuỗi phụ. Điều này có nghĩa là việc triển khai lớp con của bạn phải là luồng an toàn (cho khả năng tương thích, nó được tắt theo mặc định).
Xem thêm -[NSView setCanDrawConcurrently:]
để biết chi tiết, vì có một số điều cần thiết để thực sự bật hành vi này. Đồng thời, không nên ngụ ý rằng AppKit là chủ đề an toàn hoặc các lớp con NSView
được thiết kế để hỗ trợ chức năng này - Nó được thiết kế cho bản vẽ nặng của bạn.
Tùy chọn dành cho chế độ xem hỗ trợ vẽ theo chuỗi ví dụ NSProgressIndicator
. Nếu có thể vẽ đồng thời được kiểm tra thì drawRect có thể được gọi từ một chuỗi nền cho khung nhìn đó. Tham khảo NSView tham chiếu lớp học.
None of the AppKit's views support this (except for NSButton and NSProgressIndicator, but they have separate APIs for this for historical reasons).
Lưu ý rằng đối với OS X 10.8 và iOS 6.0, việc thiết lập thuộc tính 'drawsAsynchronously' mới trên lớp của khung nhìn có thể cung cấp đủ hiệu suất mà không có sự phức tạp của việc tạo ra' drawRect: 'thread-safe. Trên OS X, bạn sẽ cần sử dụng chế độ xem được hỗ trợ lớp để sử dụng 'drawsAsynchronously'. –
@robmayoff mẹo hay +1. bạn có cơ hội đo lường điều này hoặc bắt gặp một bài viết hay không? tôi đã viết các trình kết xuất đồng thời luồng đồng thời trong một thời gian. tôi nghĩ đó là một khu vực mà nhiều người muốn tránh :) – justin
Tôi chưa từng chơi với nó. Hiệu suất * Tối ưu hóa đồ họa 2D và hiệu ứng hoạt hình * từ [WWDC 2012] (https://developer.apple.com/videos/wwdc/2012/) thảo luận về nó, bắt đầu từ khoảng 31m24s. –