|
|
|
สอบถามการใช้ BackgroundWorker ใน C# Win App หน่อยครับ |
|
|
|
|
|
|
|
Code (C#)
private void button1_Click(object sender, EventArgs e)
{
if (backgroundWorker1.IsBusy != true)
{
backgroundWorker1.RunWorkerAsync();
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 1; i <= 10; i++)
{
backgroundWorker1.ReportProgress(i);
Thread.Sleep(1000);
}
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
label1.Text = e.ProgressPercentage.ToString() + "%";
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
label1.Text = "Complect";
}
ถ้าเป็นการ For แบบด้านบนนั้น สามารถใช้งานได้ปกติครับ Code ไม่มีปัญหา
แต่พอผมเปลี่ยน Code ให้สั่งงาน Class (ProgressChanged มันไม่ทำงานครับ ควรแก้ไขไงครับ )
Code (C#)
private void button1_Click(object sender, EventArgs e)
{
if (backgroundWorker1.IsBusy != true)
{
backgroundWorker1.RunWorkerAsync();
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
Class1.Step(textBox4.Text, textBox1.Text, textBox8.Text, textBox2.Text, textBox3.Text,textBox5.Text,textBox6.Text,textBox7.Text);
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
label1.Text = "กำลังทำงาน";
// ProgressChanged ไม่ทำงาน เด้งไปขั้นตอน RunWorkerCompleted เลย
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
label1.Text = "Complect";
}
Tag : .NET, Win (Windows App), C#
|
ประวัติการแก้ไข 2015-11-02 13:21:41 2015-11-02 13:39:34 2015-11-02 13:41:19
|
|
|
|
|
Date :
2015-11-02 13:14:50 |
By :
Easy123 |
View :
990 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองใช้ Invoke ดูไม่รู้เกี่ยวไม๊ครับ
แต่ผมใช้กับงานพวก Tread อยู่แล้ว
Code (C#)
this.label1.Invoke(new Action(() =>{ this.label1.Text ="TOR@Chemistry 5555"; }));
//control.Invoke(new Action(() =>{ control.Text =?????; }));
โค๊ดบ้านๆ
ประมาณนั้นครับ
|
|
|
|
|
Date :
2015-11-02 13:55:05 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณจะต้องเข้าใจหลักการของมันก่อนน่ะครับ ProgressChanged คุณจะต้องส่่งค่าไป Update มันด้วยครับ
|
|
|
|
|
Date :
2015-11-02 13:56:08 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2015-11-02 14:09:35 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|