2011-03-16 9 views
6

मैं PostMessage के साथ एक संदेश कतार है (और यह सच वापसी) है कि अंततः खिड़की (जो कार्यक्रम वैसे भी दुर्घटना होगा कुछ) जब तक कुछ भयावह घटना संदेश पर कार्रवाई करेंगे?विंडोज़ संदेश कितने मजबूत हैं?

उत्तर

6

एक बार संदेशों डॉन पोस्ट मैं कुछ किया जा सकता है कतार से गायब नहीं है।

हमारे उत्पादों में से एक एक विंडोज सेवा है जो थ्रेड के बीच संवाद करने के लिए विंडोज संदेशों का उपयोग करती है और यह उन पर निर्भर करती है। अब तक हमने जो एकमात्र समस्या देखी है वह यह है कि यदि आप उन्हें बहुत तेज़ी से पोस्ट करते हैं तो कतार बस भर जाती है और जब तक कोई कतार निकालने शुरू नहीं करता तब तक अधिक संदेश स्वीकार नहीं करते हैं।

4

आप निश्चित हो सकते हैं कि PostMessage() पर कॉल सफल होने पर संदेश कतार में होगा।

PostMessage() प्राप्त होने वाली कतार पूर्ण होने पर विफल हो जाएगी। MSDN का कहना है:

संदेश कतार प्रति 10,000 तैनात संदेशों की एक सीमा होती है। यह सीमा पर्याप्त रूप से बड़ी होनी चाहिए। यदि आपका एप्लिकेशन सीमा से अधिक है, तो को से बचने के लिए कई सिस्टम संसाधनों से बचने के लिए फिर से डिज़ाइन किया जाना चाहिए। इस सीमा को समायोजित करें, रजिस्ट्री कुंजी के बाद संशोधित करें।

आप निश्चित नहीं हो सकते कि पोस्ट किए गए संदेशों को कभी भी संसाधित किया जाएगा क्योंकि यह तय करने के लिए अन्य ऐप पर निर्भर है कि यह संदेश कतार पंप करना है या नहीं।

यह थोड़ा पैडेंटिक है क्योंकि असल में एक ऐप जो कभी भी अपनी कतार पंप नहीं करता है, प्राकृतिक चयन की प्रक्रिया के माध्यम से कभी भी किसी के द्वारा नहीं चलाया जाता है!

संबंधित मुद्दे