Hướng dẫn python wait until condition - python đợi cho đến khi điều kiện
Tôi cần phải đợi trong một kịch bản cho đến khi một số điều kiện nhất định trở thành sự thật? Tôi biết tôi có thể tự mình thực hiện sự kiện của mình bằng các biến điều kiện và bạn bè, nhưng tôi không muốn trải qua tất cả những rắc rối khi thực hiện nó, vì một số thay đổi thuộc tính đối tượng đến từ luồng bên ngoài trong thư viện C ++ được bọc (Boost.Python), Vì vậy, tôi không thể chiếm quyền điều khiển 5 trong một lớp và đặt một biến điều kiện ở đó, khiến tôi cố gắng tạo và báo hiệu một biến điều kiện trăn từ C ++ hoặc bọc một bản địa và chờ nó trong Python, cả hai Âm thanh khó hiểu, không cần thiết phải phức tạp và nhàm chán.Có một cách nào dễ dàng hơn để làm điều đó, ngăn chặn việc bỏ phiếu liên tục điều kiện? Lý tưởng nhất là nó sẽ nằm dọc theo dòng
Khi được hỏi ngày 7 tháng 5 năm 2010 lúc 2:33May 7, 2010 at 2:33
Thật không may, khả năng duy nhất để đáp ứng các ràng buộc của bạn là thăm dò định kỳ, ví dụ ....:
hoặc những thứ tương tự. Điều này có thể được tối ưu hóa theo nhiều cách nếu 6 có thể bị phân tách (ví dụ: nếu nó được biết là 7 của một số điều khoản, đặc biệt là nếu một số điều khoản lần lượt được tối ưu hóa bằng cách phát hiện qua 8 hoặc bất cứ điều gì, v.v.) Nhưng trong các thuật ngữ chung mà bạn yêu cầu, cách tiếp cận không hiệu quả này là lối thoát duy nhất.
Mariusz Jamro Phim huy hiệu vàng 29,8K2424 gold badges111 silver badges154 bronze badges Đã trả lời ngày 7 tháng 5 năm 2010 lúc 2:57May 7, 2010 at 2:57
Alex Martellialex MartelliAlex Martelli 830K165 Huy hiệu vàng1205 Huy hiệu bạc1385 Huy hiệu Đồng165 gold badges1205 silver badges1385 bronze badges 4 Một gói đẹp khác là 9 - https://pypi.org/project/waiting/install:
Cách sử dụng: Bạn vượt qua một hàm sẽ được gọi mỗi lần là điều kiện, thời gian chờ và (điều này rất hữu ích) bạn có thể vượt qua mô tả cho sự chờ đợi, sẽ được hiển thị nếu bạn nhận được thời gian. sử dụng chức năng:
Lưu ý: Hàm phải trả về Boolean - Đúng khi chờ đợi kết thúc, sai nếu không Đã trả lời ngày 17 tháng 12 năm 2019 lúc 7:23Dec 17, 2019 at 7:23
3 Đây là một giải pháp khác. Mục tiêu là thực hiện các chủ đề để chờ đợi nhau trước khi thực hiện một số công việc theo thứ tự rất chính xác. Công việc có thể mất thời gian không xác định. Bỏ phiếu liên tục không tốt vì hai lý do: nó ăn thời gian CPU và hành động không bắt đầu ngay sau khi điều kiện được đáp ứng.
Và cách để kiểm tra nó
Người phục vụ cho đa xử lý:
Hãy bình luận nếu đây vẫn không phải là giải pháp tốt nhất. Đã trả lời ngày 25 tháng 5 năm 2020 lúc 16:05May 25, 2020 at 16:05
AlexalexAlex 811 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges 2 Về cơ bản, bạn đã trả lời câu hỏi của riêng bạn: Không. Vì bạn đang xử lý các thư viện bên ngoài trong Boost.Python, có thể thay đổi các đối tượng khi giải trí, bạn cần phải có những thói quen đó gọi một trình xử lý sự kiện làm mới hoặc làm việc với một điều kiện. Đã trả lời ngày 7 tháng 5 năm 2010 lúc 2:36May 7, 2010 at 2:36
Yann Raminyann RaminYann Ramin 32,7k3 huy hiệu vàng57 Huy hiệu bạc81 Huy hiệu đồng3 gold badges57 silver badges81 bronze badges Đây là sự mở rộng luồng cho giải pháp của Alex:
Đã trả lời ngày 4 tháng 8 năm 2017 lúc 4:16Aug 4, 2017 at 4:16
Kavaklıoğlucan KavaklıoğluCan Kavaklıoğlu 4871 Huy hiệu vàng7 Huy hiệu bạc12 Huy hiệu đồng1 gold badge7 silver badges12 bronze badges Từ góc độ tính toán, đôi khi phải có một kiểm tra cho tất cả các điều kiện ở đâu đó. Nếu bạn có hai phần mã, một phần tạo ra các thay đổi điều kiện và phần còn lại nên được thực thi khi một số là đúng, bạn có thể thực hiện như sau: Có mã thay đổi các điều kiện, giả sử, chủ đề chính và mã nên được khởi chạy khi một số điều kiện là đúng, trong một luồng công nhân.
Để biết thêm thông tin liên quan đến phương pháp này, hãy truy cập: https://docs.python.org/3/l Library/threading.html#event-objects Đã trả lời ngày 27 tháng 5 năm 2021 lúc 22:42May 27, 2021 at 22:42
Giải pháp đề xuất:
Cách sử dụng: 0
Asclepius 53.2K16 Huy hiệu vàng155 Huy hiệu bạc138 Huy hiệu đồng16 gold badges155 silver badges138 bronze badges Đã trả lời ngày 9 tháng 7 năm 2019 lúc 17:11Jul 9, 2019 at 17:11
Tôi đã sử dụng nó trong mã của mình: 1Hi vọng điêu nay co ich Đã trả lời ngày 29 tháng 8 lúc 14:12Aug 29 at 14:12
Điều này làm việc cho tôi 2Điều này là để chờ tín hiệu trong khi đảm bảo giới hạn thời gian là 1 giây
Yamaneko 3.3232 Huy hiệu vàng36 Huy hiệu bạc56 Huy hiệu Đồng2 gold badges36 silver badges56 bronze badges Đã trả lời ngày 2 tháng 2 năm 2019 lúc 9:37Feb 2, 2019 at 9:37
Đây là cách: 3Đã trả lời ngày 28 tháng 6 năm 2021 lúc 21:29Jun 28, 2021 at 21:29
1 Đây là mã của tôi tôi đã sử dụng trong một trong các dự án của tôi: 4Hy vọng nó giúp Đã trả lời ngày 15 tháng 3 năm 2020 lúc 10:05Mar 15, 2020 at 10:05
|