दिखा रहा है कि जब मैं कुछ कार्य करता हूं तो कुछ कार्य यूआई स्वयं सक्रिय रहता है और मैं प्रगति-बार में काम की प्रगति दिखाना चाहता हूं।बैकग्राउंडवर्कर में एक विधि चलाना और प्रोग्रेसबार
मेरे पास एक विधि है, एक BackGroundWorker
और Progressbar
। मैं विधि को कॉल करना चाहता हूं जब BackGroundWorker
चलना शुरू होता है और प्रगति दिखाता है। विधि में लूप होता है। तो, यह प्रगति की रिपोर्ट कर सकते हैं।
तो, क्या किया जा सकता है?
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'dataSet1.TBLMARKET' table. You can move, or remove it, as needed.
myBGWorker.WorkerReportsProgress = true;
}
private void myBGWorker_DoWork(object sender, DoWorkEventArgs e)
{
parseFiles();
}
private void myBGWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
myProgressBar.Value = e.ProgressPercentage;
}
private void myBGWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
MessageBox.Show("Done");
}
private void parseButton_Click(object sender, EventArgs e)
{
myBGWorker.RunWorkerAsync();
}
public void parseFiles()
{
for()
{
//parsing
myBGWorker.ReportProgress(...);
}
}
लेकिन यह काम नहीं कर रहा है। Progressbar
अपडेट नहीं हो रहा है। MessageBox
"हो गया" के बाद केवल एक छोटी प्रगति दिखाई दे रही है।
क्या आपके पार्सफ़ाइल 'रिपोर्ट प्रोग्रेस' को कॉल करने का काम करते हैं? – McAden
हां। यह वहाँ है। क्षमा करें मैं इसे पहले जोड़ना भूल गया था। –