के साथ ASP.NET में पृष्ठभूमि कार्यकर्ता का उपयोग करना मुझे पृष्ठभूमि कार्य करने की आवश्यकता है जिसमें प्रगति पट्टी है जो प्रतिशत दिखाता है और रद्द बटन दिखाता है। कार्य विनिर्देश अलग-अलग हैं, अभी के लिए, मैं सिर्फ एक उदाहरण काम करना चाहता हूं, इसलिए मेरे पास केवल तीन मुख्य ईवेंट हैंडलर (DoWork, प्रोग्रेस चेंज, और रनवॉर्कर पूर्ण) और एक लूप है जो सिर्फ काउंटर को बढ़ाता है और DoWork में 50ms के लिए सोता है। हालांकि, यह अंत में एक बार छोड़कर अद्यतन नहीं करता है।AJAX
विंडोज़ फॉर्म में मैं पृष्ठभूमि कार्यकर्ता का उपयोग करता हूं और यह बिना किसी समस्या के सही ढंग से कार्य करता है। मैं सिर्फ उसी कोड का उपयोग करना चाहता हूं। हालांकि, मैं सामान देख रहा हूं जो कहता है कि एएसपी.नेट को समान कार्यक्षमता प्राप्त करने के लिए AJAX का उपयोग करना चाहिए। तो मेरे प्रश्न हैं:
1) क्या मुझे पृष्ठभूमि कार्यकर्ता का उपयोग करने के लिए वास्तव में AJAX की आवश्यकता है?
2) हाँ, मैं जरूरत AJAX करते हैं, तो सबसे आसान, सबसे आसान तरीका है एक व्यक्ति के बारे में है कि AJAX पृष्ठभूमि कार्यकर्ता अप और एक एएसपी पर चलाने के लिए कर सकता है एक रफ़ू बात पता नहीं है क्या है। नेट वेबपेज?
3) यदि कोई नहीं है, तो मुझे AJAX की आवश्यकता नहीं है, क्या कोई मुझे ऐसे कामकाजी नमूने पर इंगित कर सकता है जो इसका उपयोग नहीं करता है? मुझे दिलचस्पी है भले ही यह पृष्ठभूमि श्रमिकों की तुलना में कुछ अन्य थ्रेडिंग विधि का उपयोग करे।
बहु-भाग प्रश्न के लिए खेद है! यदि आप एक या दूसरे का जवाब दे सकते हैं, तो इसकी सराहना की जाएगी। मुझे वास्तव में यह नहीं लगता कि जब तक यह काम करता है तब तक मैं किस विधि का उपयोग करता हूं। .cs पेज से संदर्भ के लिए
कोड:
protected void bwProcess_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
lblProgress.Text = "Task Complete: " + e.Result;
}
protected void bwProcess_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
lblProgress.Text = e.ProgressPercentage.ToString();
}
protected void bwProcess_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i <= 100; i++)
{
if (bwProcess.CancellationPending)
{
lblProgress.Text = "Task Cancelled.";
e.Cancel = true;
return;
}
bwProcess.ReportProgress(i);
Thread.Sleep(50);
}
e.Result = "100%";
}
protected void BWClick(object sender, EventArgs e)
{
lblProgress.Text = "Firing Process...";
bwProcess = new BackgroundWorker();
bwProcess.WorkerReportsProgress = true;
bwProcess.WorkerSupportsCancellation = true;
bwProcess.DoWork += new DoWorkEventHandler(bwProcess_DoWork);
bwProcess.ProgressChanged += new ProgressChangedEventHandler(bwProcess_ProgressChanged);
bwProcess.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwProcess_RunWorkerCompleted);
if (bwProcess != null)
{
bwProcess.RunWorkerAsync("StartAsynchronousProcess");
}
}
अन्य नोट: मैं Async = "सही" और EnableSessionState = "ReadOnly" @Page में प्रवेश किया है।
अग्रिम धन्यवाद!
देखें http://stackoverflow.com/questions/57845/backgroundworker-thread-in-asp-net – Despertar
http://msdn.microsoft.com/en-us/library/ms178210%28v=vs.85% 29.aspx एक अद्यतित संस्करण है।यह सुनिश्चित करें कि इसे प्रगति पट्टी में कैसे अनुकूलित किया जाए, लेकिन मुझे लगता है कि मैं धीरे-धीरे करीब आ रहा हूं। – Brandi