2011-06-17 19 views
5

पर WPF ऐप लॉन्च को अनुकूलित करने के लिए कैसे मैंने एक WPF ऐप लागू किया और इसे विंडोज स्टार्टअप पर लॉन्च करने के लिए पंजीकृत किया था। मेरा ऐप एक साधारण लॉगऑन ऐप है, जब उपयोगकर्ता लॉग ऑन होता है आइकन ट्रे में दिखाई देता है। समस्या यह है कि विंडोज स्टार्टअप के बाद खुद को दिखाने के लिए लगभग 30 सेकंड लगते हैं। मैंने बड़ी सफलता के बिना Ngen की कोशिश की है। मैं एक स्प्लैश स्क्रीन को लागू करने से बचना चाहता हूं। मैं विंडोज़ स्टार्टअप के बाद विंडोज लाइव मैसेंजर के समान "डब्लूपीएफ ऐप" तुरंत दिखाना चाहता हूं। स्टार्टअप समय को कम करने के लिए मैं कुछ भी कर सकता हूं? क्या मेरे पास इसे मूल रूप से कोड करने की तुलना में कोई अन्य विकल्प है? धन्यवाद।विंडोज स्टार्टअप

उत्तर

2

क्या कंप्यूटर निष्क्रिय होने पर शुरू होने में 30 सेकंड लगते हैं (यानी यदि आप विंडोज़ लोड करने में व्यस्त नहीं होने पर डबल क्लिक करके इसे शुरू करते हैं)?

विंडोज स्टार्टअप के दौरान, कंप्यूटर आमतौर पर बहुत सी चीजों के साथ व्यस्त होता है और इससे आपके आवेदन के लिए धीमा हो सकता है। तब आप इतना नहीं कर सकते हैं।

लेकिन, एक WPF आवेदन के स्टार्टअप में सुधार के लिए कुछ सामान्य युक्तियां:

  • केवल नियंत्रण आप वास्तव में शुरू में
  • अपने नियंत्रण/खिड़कियों की जटिलता को कम उपयोगकर्ता के लिए दिखाने की जरूरत का दृष्टांत।
  • अपने नियंत्रण के निर्माताओं में लेने वाली & खिड़कियों कुछ भी समय ऐसा मत करो
    • स्थानीय डिस्क से एक फ़ाइल को पढ़ने की तरह यहां तक ​​कि मासूम सामान समय लगता है, तो डिस्क अन्य सामान के साथ व्यस्त है (जैसे कि यह सामान्य रूप से के दौरान होता है हो सकता है खिड़कियों स्टार्टअप)
    • वेब सेवा कॉल अतिरिक्त लंबा समय लग सकता है, तो नेटवर्क पूरी तरह से अभी तक प्रारंभ नहीं किया गया है
    • एक आसान समाधान एक BackgroundWorker को भारी काम ऑफलोड या अतुल्यकालिक कॉल का उपयोग मैं/हे और नेटवर्क अनुरोध करने के लिए करने के लिए है

वहाँ भी है एक सेटिंग आप app.config कि क्रम प्रमाण पत्र के साथ विधानसभाओं को प्रमाणित नहीं करने के लिए कहता है में डाल सकते हैं (इस चेक एक लंबे समय, विशेष रूप से ठंड शुरू होने से ले जा सकते हैं): कुछ अधिक

<configuration> 
    <runtime> 
    <generatePublisherEvidence enabled="false"/> 
    </runtime> 
</configuration> 

सामान्य सुझाव एमएसडीएन साइट पर Application Startup Time पर उपलब्ध हैं।

+1

पर एक ठंडा शुरुआत के साथ कोई समस्या नहीं है पर डबल क्लिक करें, यह शुरू करने के लिए के बारे में 2 सेकंड लेता है। समस्या विंडोज स्टार्टअप पर है। मैंने विंडोज लाइव मैसेंजर जैसे ऐप्स देखे हैं जो विंडोज स्टार्टअप पर तुरंत लॉन्च करते हैं लेकिन ये मूल अनुप्रयोग हैं। क्या मैं डब्ल्यूपीएफ में समान कुछ के करीब आ सकता हूं? – pfongkye

+0

अपने स्टार्टअप/कन्स्ट्रक्टर कोड को देखें और डिस्क I/O और नेटवर्क I/O जैसी चीज़ें ढूंढें और उन्हें पृष्ठभूमि थ्रेड/एसिंक कोड पर ले जाएं। शायद आपका ऐप नेटवर्क के लिए इंतजार कर रहा है जिसे विंडोज़ द्वारा अभी तक शुरू नहीं किया गया है –

+0

@IsakSavo वास्तव में सरल WPF हैलो वर्ल्ड एप्लिकेशन एक ही व्यवहार को प्रदर्शित करता है – Poma

0

शायद this site आपके लिए सहायक होगा। यह आपके पास पहले से एक एप्लिकेशन शुरू करने के लिए कुछ विकल्प सूचीबद्ध करता है (यदि यह एक सेवा है) या विंडोज लॉगिन के बाद। उनमें कुछ रजिस्ट्री हैकिंग शामिल हैं जिन्हें आपको अनइंस्टॉल करने के दौरान पूर्ववत करने की आवश्यकता होगी।

0

regedit का उपयोग करना,

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ एक्सप्लोरर \ क्रमानुसार पर रजिस्ट्री में एक DWORD बनाएं

StartupDelayInMSec बुलाया

डिफ़ॉल्ट मान 0 पर सेट किया जाना चाहिए, लेकिन दो बार जांचें।

स्टार्टअप के बाद मेरे एप्लिकेशन लॉन्च समय के लिए यह लगभग 10 सेकंड काट देता है।

नोट: Serialize कुंजी मौजूद नहीं हो सकता है।
आप एक्सप्लोरर पर राइट क्लिक करके इसे बना सकते हैं और चयन करने न्यू कर सकते हैं -> कुंजी

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