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"
'개발언어 > 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 |