2010-05-19 18 views
9

हम CurrentCulture और/या CurrentUICulture सेट करते हैं हम इस तरह वर्तमान धागे पर ऐसा करते हैं:क्या हम एएसपी.NET में एकाधिक उपयोगकर्ताओं को प्रभावित करते हैं जब हम थ्रेड वर्तमान संस्कृति/CurentUICulture सेट करते हैं?

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-GB");

बिगड़ता है इसका मतलब है कि हम उनके अनुरोध के रूप में हमारी वेब ऐप्लिकेशन के एकाधिक उपयोगकर्ताओं की संस्कृति सेटिंग को प्रभावित कर सकता है हो सकता है पूल से धागे का पुन: उपयोग करें?

मैं एक एएसपी.नेट एमवीसी अनुप्रयोग पर काम कर रहा हूं जहां प्रत्येक उपयोगकर्ता के पास अपने खाता डेटा में निर्दिष्ट संस्कृति सेटिंग हो सकती है। जब उपयोगकर्ता लॉग इन करता है, तो संस्कृति सेटिंग को डेटाबेस से पुनर्प्राप्त किया जाता है और इसे वर्तमान संस्कृति के रूप में सेट किया जाना चाहिए।

मेरी चिंता यह है कि वर्तमान धागे पर वर्तमान संस्कृति को स्थापित करने से इस धागे का पुन: उपयोग करने वाले किसी अन्य उपयोगकर्ता अनुरोध को प्रभावित किया जा सकता है। मैं और भी अधिक चिंतित यह पढ़ हूँ:

ASP.NET not only uses a thread pool, but may switch threads during request processing.

उत्तर

5

रॉकी Lhotka - और बताया कि स्कॉट गुथरी ने उन्हें यह बताया:

एएसपी.नेट यह सुनिश्चित करता है कि, भले ही आई अपने धागे को स्विच करें, वर्तमान प्रिंसिपल और संस्कृति मूल धागे से गुण नए धागे तक आगे बढ़ते हैं। यह स्वचालित है, और आपको उन मानों को खोने के बारे में चिंता करने की आवश्यकता नहीं है। वाह!

हालांकि, थ्रेड-लोकल स्टोरेज आगे नहीं बढ़ता है। , और यह निश्चित रूप से पढ़ने लायक है -

लेख और अधिक रोचक सामग्री (कम से कम 2006 के रूप में वह जिन परिस्थितियों में ASP.NET होगा स्विच धागे की रूपरेखा) शामिल हैं। दुर्भाग्य से, रॉकी एक आधिकारिक स्रोत के लिए एक लिंक प्रदान नहीं करता है। प्रतिबिंबक यहां या तो बहुत मदद नहीं करते हैं, क्योंकि सभी प्रासंगिक विधियां मूल कॉल में समाप्त होती हैं।

यह कहकर, यह समझ में आता है: एपीआई दृढ़ता से तात्पर्य है कि वर्तमान संस्कृति वर्तमान प्रिंसिपल की तरह संदर्भ स्विच में ले जाती है, और मैंने एएसपी.NET को अपेक्षित व्यवहार के विपरीत कभी नहीं देखा है।

+0

इस ब्लॉग पोस्ट के लिंक के लिए धन्यवाद। यह वास्तव में एक दिलचस्प है और मेरी चिंताओं के दूसरे भाग को साफ़ करता है - थ्रेड स्विचिंग केवल एक अनुरोध के दौरान होता है जब एक एसिंच ऑपरेशन किया जाना चाहिए, इसलिए कम से कम यह यादृच्छिक नहीं है और संस्कृति को आगे बढ़ाया जाना चाहिए, एक समस्या नहीं है। जब कोई नया अनुरोध आता है तो पूल से धागे का पुनरुत्थान क्या होता है, लेकिन यदि हम मानते हैं कि हमने ऑनएक्शन एक्सेलिंग में प्रत्येक अनुरोध के लिए संस्कृति सेट की है तो संभवतः यह कोई समस्या नहीं है। – Nikolay

0

मानक ASP.NET में मैं पृष्ठ क्षेत्रों UICulture और संस्कृति का इस्तेमाल किया। थ्रेड संदर्भ तब बदल दिए जाते हैं क्योंकि अनुरोध के विभिन्न हिस्सों को धागे पर निष्पादित किया जाता है।

यह कहकर कि मैं इस बात से परिचित नहीं हूं कि एमवीसी इसका प्रबंधन कैसे करता है, लेकिन मुझे लगता है कि इसे दृश्य में लागू किया जाना चाहिए, और यह देखते हुए कि दृश्य पृष्ठ से प्राप्त होने वाले दृष्टिकोण हैं, उनके पास यूआईसील्चर और संस्कृति होगी के रूप में ASP.NET मानक प्रति ...

वह सब कह में, सुसमाचार के रूप में इस ले न जैसा कि मैंने कहा, मैं blogged about this very question कई साल पहले एएसपी MVC के साथ ज्यादा नहीं किया है ...

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