यह कोड स्निपेट Stephen Cleary's blog से है और कार्य का उपयोग करते समय प्रगति की रिपोर्ट करने का एक उदाहरण देता है। Run। मैं जानना चाहता हूं कि यूआई को अपडेट करने के साथ कोई क्रॉस थ्रेड समस्या क्यों नहीं है, जिसके द्वारा मेरा मतलब है कि क्यों आह्वान की आवश्यकता नहीं है?कार्य.रुन और यूआई प्रगति अद्यतन
private async void button2_Click(object sender, EventArgs e)
{
var progressHandler = new Progress<string>(value =>
{
label2.Text = value;
});
var progress = progressHandler as IProgress<string>;
await Task.Run(() =>
{
for (int i = 0; i != 100; ++i)
{
if (progress != null)
progress.Report("Stage " + i);
Thread.Sleep(100);
}
});
label2.Text = "Completed.";
}
@newbieguy स्ट्रिंग concatenations स्वचालित रूप से ToString() विधि को कॉल करता है –