2010-11-14 22 views

Trả lời

11

Có. Thực tiễn tốt nhất là đây là một ý tưởng tồi và bạn không bao giờ thực sự cần phải làm điều đó. Nó không hoạt động với tất cả các lò phản ứng, và bạn chắc chắn không thể có hai thư viện khác nhau mà muốn làm điều này.

Tại sao bạn cần duy trì vòng lặp chính của riêng mình? Rất có thể, nó giống như "Tôi muốn làm việc với PyGame" hoặc "Tôi đang viết một chương trình GUI và tôi muốn sử dụng mainline của GTK" hoặc "Tôi đang sử dụng Twisted từ bên trong Blender và nó có xử lý sự kiện riêng". Nếu đây là trường hợp, bạn nên hỏi câu hỏi cụ thể đó, bởi vì mỗi người trong số họ có câu trả lời riêng.

Nếu bạn hoàn toàn cần làm điều này (và, một lần nữa: bạn không) cách thực hiện là gọi reactor.iterate() theo định kỳ. Điều này sẽ chậm, xử lý tín hiệu ngắt và có ngữ nghĩa chiến thắng đối với reactor.stop(). Nó sẽ giới thiệu rất nhiều lỗi trong chương trình của bạn mà không có mặt ở đó, và khi bạn cần trợ giúp chẩn đoán chúng, nếu bạn hỏi ai đó trong nhóm dev Twisted, điều đầu tiên họ sẽ nói với bạn là "ngừng làm việc đó, bạn don 't cần phải làm điều đó ".

+0

Tôi đang làm việc với pyglet. Nó quá xấu xoắn như thế này; có vẻ như làm mọi việc dễ dàng hơn nhiều, không phải những gì tôi muốn làm. Bạn có lẽ đúng là tôi không cần phải viết chương trình của tôi bên ngoài mô hình lò phản ứng xoắn của xoắn, nhưng điều đó không thay đổi thực tế rằng nó sẽ không phải là một giải pháp rất thanh lịch đối với tôi. Tôi muốn viết lại bộ cấp thấp của riêng mình hơn là đối phó với điều đó. – shino

+3

Điều này chỉ có nghĩa là bạn muốn pygletreactor: http://code.google.com/p/pyglet-twisted/ –

+0

Chờ đợi - có cách nào để sử dụng lò phản ứng pyglet để tôi không ở trong mô hình điều khiển sự kiện không? Tôi không nhìn thấy nó, nhưng điều đó sẽ hoàn hảo. – shino

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