int test_i;
int counter = 400;
void Start()
{
for(int i =0; i<10; i++)
{
var taskSource = new TaskCompletionSource();
ThreadPool.QueueUserWorkItem(o => taskSource.SetResult(Test4Async().Result));
// 이 주석이 없다면 쓰레드들은 동시에 발동하지 않고 순차적으로 발동한다
// var result = await taskSource.Task;
}
}
async Task Test4Async()
{
Debug.LogFormat("Test4Async Start {0}", Thread.CurrentThread.ManagedThreadId);
test_i++;
for (int i = 0; i < counter; i++)
for (int j = 0; j < counter; j++) ;
Debug.LogFormat("Delay");
await Task.Delay(1);
Debug.LogFormat("Test4Async End {0}", Thread.CurrentThread.ManagedThreadId);
return test_i;
}
갤럭시 4s 에서 테스트시
Test4Async 1번 호출시 10~12초.
Test4Async 10를 순차적으로 호출 : 80~100초
Test4Async 10개를 쓰레드로 호출 : 25~25초
'Unity > 기타' 카테고리의 다른 글
Dotween (0) | 2019.10.21 |
---|---|
Debug Log 에 칼라 넣기 (0) | 2019.10.11 |
TextMeshProUGUI 에서 한글 폰트 만들기 (0) | 2019.09.18 |
Task를 취소하기 (0) | 2019.09.17 |
Task async awit 로 쓰레드 사용하기 (0) | 2019.09.17 |