본문 바로가기
개발언어/C#

[C#] Task.Run() vs Task.Factory.StartNew()

by 창용이랑 2023. 5. 12.
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"

 

 

 

 

출처 : https://blog.naver.com/lsunday/222528901411

'개발언어 > C#' 카테고리의 다른 글

[C#] Var와 다이나믹(Dynamic)에 대해서 이해하기  (0) 2023.05.17
[C#] Task.WhenAll() vs WhenAny()  (0) 2023.05.12
[C#] Task.Run()  (0) 2023.05.12
[C#] Task.Wait() vs await Task  (0) 2023.05.12
[C#] 비동기 async / await 키워드  (0) 2023.05.12