개발언어/C#
[C#] Task.Run() vs Task.Factory.StartNew()
창용이랑
2023. 5. 12. 17:56
728x90
- Task.Run()
Task.Factory.StartNew() 를 좀 더 간단히 사용하도록 도입
- Task.Factory.StartNew() 사용한 샘플
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "Begin";
textBox1.Refresh();
AsyncSleep(); //메서드의 비동기 처리
textBox1.Text = "End";
}
private async void AsyncSleep()
{
await AwaitSleep();
textBox1.Text = "Completed";
}
private Task AwaitSleep()
{
return Task.Factory.StartNew(() =>
{
System.Threading.Thread.Sleep(1000);
});
}
- Task.Run() 샘플
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "Begin";
textBox1.Refresh();
AsyncSleep(); //메서드의 비동기 처리
textBox1.Text = "End";
}
private async void AsyncSleep()
{
await Task.Run(() =>
{
System.Threading.Thread.Sleep(1000);
});
textBox1.Text = "Completed";
}
출력 :
"Begin"
"End"
1초후 "Completed"