2012-10-22 6 views
5

मेरा आउटलुक 2010 एड-इन (वीएसटीओ का उपयोग करके) कुछ मेल-सर्विस कॉल को भेजे जाने पर एक अलग थ्रेड में कॉल करता है। मैं एक छोटी गैर-मोडल पॉप-अप अधिसूचना (जैसे स्काइप/याहू/विंडोज लाइव मैसेंजर की तरह) को वेब-सेवा कॉल के परिणाम प्रदर्शित करना चाहता हूं।आउटलुक ऐड-इन (पृष्ठभूमि थ्रेड इश्यू से फॉर्म.शो() को कॉल करने के लिए पॉप-अप अधिसूचना)

मैं अपनी आवश्यकताओं के अनुसार Notification Window project को अनुकूलित करने की कोशिश कर रहा था। यह ठीक से काम करने लगता है जब मेरी ऐड-इन निम्नलिखित कोड का उपयोग कर के एक फार्म के एक क्लिक ईवेंट हैंडलर से कहा जाता है:

private void btnOk_Click(object sender, EventArgs e) 
{ 
    PopupNotifier notifier = new PopupNotifier(); 
    notifier.DisplayNotification("Test"); 
} 

हालांकि, जब एक ही विधि notifier.DisplayNotification ("टेस्ट") कहा जाता है पृष्ठभूमि थ्रेड से वेब-सेवा कॉल करने से, नोटिफ़ायर लटकता है; इसका फॉर्म स्क्रीन पर प्रदर्शित होता है, लेकिन कोई टेक्स्ट, रंग या एनीमेशन काम नहीं करता है। यह तब तक बैठता है जब तक कि Outlook बंद न हो जाए।

मैंने कुछ खोज किया है और पाया है कि यह तब हो सकता है जब नोटिफ़ायर शोडियलॉग() के बजाय शो() विधि का उपयोग कर रहा है। और चूंकि मैं पॉप-अप अधिसूचना के लिए एक मॉडल संवाद नहीं चाहता हूं, इसलिए मैं विधि को ShowDialog() में भी नहीं बदल सकता।

अन्य लेखों के मुताबिक, मैंने पृष्ठभूमिवर्कर्स, प्रतिनिधियों, मेथडइवॉकर इत्यादि का उपयोग करके विधि को कॉल करने का भी प्रयास किया है, लेकिन वांछित परिणाम नहीं मिल सका।

हालांकि, ऊपर की कोशिश करते समय, मैंने देखा कि यह न केवल पॉप-अप नोटिफ़ायर के लिए होता है, बल्कि कोई भी सरल रूप है। अगर मैं इसे पृष्ठभूमि धागे में बना देता हूं और शो() विधि को कॉल करता हूं, तो यह अटक जाता है, जबकि उसी स्थिति में ShowDialog() ठीक काम करता प्रतीत होता है।

इस बारे में कोई विचार कि मैं इसे कैसे ठीक कर सकता हूं, इसकी सराहना की जाएगी।

उत्तर

1

अंततः TaskbarNotifier प्रोजेक्ट का उपयोग करके इस मुद्दे को हल करने में कामयाब रहा।

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