WPF 비동기 Task (관리)

Eden·2024년 6월 27일
0

비동기 쓰레드를 반복 생성하여 각각을 관리해야할때 사용한 방법

//class 생성
public class EachTask
{
	public CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); // 해당 Task를 취소할 때 사용
    public int id;
    public Task task;
    //적당히 바인딩할 변수들을 선언하여 ListView에서 사용 했었음
}

public List<EachTask> TaskList = new List<EachTask>();


public void AddTask()
{
	EachTask eachTask = new EachTask();
    eachTask.task = SomethingTask(eachTask);
    
	TaskList.Add(eachTask);
}

private async Task SomethingTask(EachTask eachTask)
{
	Action action = () =>
    {
    	while(true)
        {
        	eachTask.cancellationTokenSource.Token.ThrowIfCancellationRequested();
            await Task.Delay(100);
        }
    };
    await Task.Run(action, eachTask.cancellationTokenSource.Token);
}


profile
주섬주섬..

0개의 댓글