我的任务可能要完成。
我尝试了简单的解说,但出于某种原因,它打开了全球倡议的read子。 我认为,这项任务是同步的,在任务执行期间,全球倡议会更新。
这项任务是否可行?
private void button5_Click(object sender, EventArgs e)
{
var task = Task.Factory.StartNew(() => DoSomething());
while (!task.IsCompleted)
{
label1.Text += ".";
if (label1.Text.Length == 5)
label1.Text = ".";
}
}
private void DoSomething()
{
Thread.Sleep(5000);
}
<><>UPDATE: 在达米恩的答复之后,我尝试了以下几个方面,但万国邮联已接手。
private void button5_Click(object sender, EventArgs e)
{
var task = Task.Factory.StartNew(() => DoSomething());
}
public delegate void dgUpdateLabel();
private void UpdateLabel()
{
if (this.InvokeRequired)
{
this.BeginInvoke(new dgUpdateLabel(UpdateLabel), new object[] { });
}
else
{
label1.Text += ".";
if (label1.Text.Length == 5)
label1.Text = ".";
}
}
private void DoSomething()
{
var task = Task.Factory.StartNew(() => Sleep());
while (!task.IsCompleted)
{
UpdateLabel();
}
}
private void Sleep()
{
Thread.Sleep(5000);
}
<>>><>>>> 我认为,试图更新标签的速度太快,无法处理。 如果在经过更新的实验室方法之后,你将“Thread.Sleep(500)”称作它按预期运作。