मैं सिल्वरलाइट की ChildWindow
ऑब्जेक्ट का उपयोग करके एक पुष्टिकरण संवाद करने का प्रयास कर रहा हूं।सिल्वरलाइट थ्रेड को रोकने के लिए संवाद की पुष्टि करें
आदर्श रूप से, मैं इसे MessageBox.Show()
जैसे काम करना चाहता हूं, जहां पूरे एप्लिकेशन को उपयोगकर्ता से इनपुट प्राप्त होने तक रोक दिया जाता है।
उदाहरण के लिए:
for (int i = 0; i < 5; i++)
{
if (i==3 && MessageBox.Show("Exit early?",
"Iterator", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
{
break;
}
}
3 में यात्रा रोक सकते हैं उपयोगकर्ता ठीक दबाता है ...
हालांकि, अगर मैं पंक्तियों के साथ कुछ करने के लिए इस प्रकार थे:
ChildWindow confirm = new ChildWindow();
confirm.Title = "Iterator";
confirm.HasCloseButton = false;
Grid container = new Grid();
Button closeBtn = new Button();
closeBtn.Content = "Exit early";
closeBtn.Click += delegate { confirm.DialogResult = true; confirm.Close(); };
container.Children.Add(closeBtn);
Button continueBtn = new Button();
continueBtn.Content = "Continue!";
continueBtn.Click += delegate { confirm.DialogResult = false; confirm.Close(); };
container.Children.Add(continueBtn);
confirm.Content = container;
for(int i=0;i<5;i++) {
if (i==3) {
confirm.Show();
if (confirm.DialogResult.HasResult && (bool)confirm.DialogResult) {
break;
}
}
}
यह स्पष्ट रूप से काम नहीं करेगा, क्योंकि धागा रुक गया नहीं है ... confirm.DialogResult.HasResult
गलत होगा, और लूप पिछले 3 जारी रहेगा।
मैं बस सोच रहा हूं, मैं इस बारे में कैसे ठीक से जा सकता हूं। सिल्वरलाइट एकल-थ्रेडेड है, इसलिए मैं धागे को सोने के लिए नहीं डाल सकता और फिर तैयार होने पर इसे जगा सकता हूं, इसलिए मैं सोच रहा हूं कि क्या कुछ और है जो लोग सिफारिश कर सकते हैं?
मैंने तर्क को उलट दिया है - यानी, उन कार्यों को पार करना जिन्हें मैं हां/नहीं घटनाओं में करना चाहता हूं, लेकिन मेरे विशिष्ट मामले में यह काफी काम नहीं करेगा।
अग्रिम धन्यवाद!
यह बहुत प्रतिभाशाली है! मैं इसे एक शॉट दूंगा और देखता हूं कि यह कितना अच्छा काम करता है ... – AlishahNovin
इसे पृष्ठभूमि थ्रेड में गणनाकर्ता को निष्पादित करने के लिए आसानी से अपनाया जा सकता है, जिससे एक बहुत ही सरल बहु थ्रेडेड यूआई वर्कफ़्लो बन जाता है। – SLaks
+1। मामूली बिंदु: क्या आपका मतलब 'YourMethod' में 'उपज वापसी पुष्टिकरण' नहीं है? –