내 프로그램이 진행되는 동안 진행 표시 줄을 보여주고 싶습니다. 일부 기능이 실행 중입니다. 이 함수는 사용자가 button1을 클릭하면 실행됩니다. 백그라운드에서 실행되는 트레드를 사용했지만,이 프로그램을 실행 한 후이 스레드는 프로그램 완료 후 실행 중입니다. 어떻게 수리 할 수 있습니까?백그라운드에서 스레드 C#
private void button1_Click(object sender, EventArgs e)
{
pr(sender,e);
}
public void pr(object sender, EventArgs e)
{
if (... == DialogResult.OK)
{
if (...)
{
Thread wa = new Thread(new ThreadStart(this.lad));
wa.IsBackground = true;
timer1.Interval = 500;
timer1.Start();
wa.Start();
if (... == DialogResult.OK)
{//the rest of the function}
}
}
}
private void lad()
{
int war = 10;
if (this.progressBar1.InvokeRequired)
{
progressBar1.Invoke((Del)delegate
{
for (int i = 1; i <=10; i++)
{
this.progressBar1.Value = this.progressBar1.Value + war;
}
});
}
if (progressBar1.Value == progressBar1.Maximum)
{
timer1.Stop();
MessageBox.Show("files saved");
}
}
private void timer1_Tick(object sender, EventArgs e)
{
ladowanie_paska();
}
나는이 변수와 함수 이름이 .... 의미한다고 가정합니다. 아무도 이것을 유지하지 않으시기 바랍니다. –
@Wonko 동의, 그들은 직관적이지 않습니다. 온라인 게시 목적으로 난독 화되기를 바랍니다. – AaronLS