비동기 프로그래밍을 가능하게 함.
내부적으로 스레드를 생성.( 일부 생성 안되는 경우도 있다는 해외글이 있긴하나 평범하게 쓴다면 무시 )
Unity 에서 테스트
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEngine;
public class Test_AsyncTask1 : MonoBehaviour {
int back = 0;
int next = 0;
#region TEST1
public void Test1()
{
Debug.Log("aaa");
a1();
Debug.Log("bbb");
}
public async Task a1()
{
while (next < 10)
{
next++;
await Task.Delay(1000);
}
}
#endregion
#region TEST2
async void Test2()
{
Debug.Log("Test2 Start");
int a = await a2();
Debug.Log("Test2 End " + a.ToString());
}
public async Task<int> a2()
{
while (next < 10)
{
next++;
await Task.Delay(1);
}
return next;
}
#endregion
private void Update()
{
if (Input.GetKeyUp(KeyCode.A))
{
next = 0;
Test2();
}
if (Input.GetKeyUp(KeyCode.S))
{
next = 0;
Test2();
}
if (back != next)
{
Debug.Log(next);
back = next;
}
}
}
'C#' 카테고리의 다른 글
async 및 await를 사용한 비동기 프로그래밍 - 4 ( Task.WhenAny ) (0) | 2019.09.11 |
---|---|
async 및 await를 사용한 비동기 프로그래밍 - 3(일정 기간 이후 비동기 작업 취소) (0) | 2019.09.11 |
async 및 await를 사용한 비동기 프로그래밍 - 2 (0) | 2019.09.11 |
async 및 await를 사용한 비동기 프로그래밍 - 1 (0) | 2019.09.10 |
파일, 폴더 관련 함수들 (0) | 2019.05.28 |