2016-12-19 9 views
3

RunAsync를 어떻게 중지시킬 수 있습니까?CSharpScript.RunAsync를 취소하는 방법

CancellatioTokenSource cts = new CancellationTokenSource(); 
//I thought that it's must work, but it don't 
var script = CSharpScript.Create(code: someCode); 
await script.RunAsync(cancelletionToken: cts.Token); 

void button_click() 
{ 
    cts.Cancel() 
} 

어떻게해야합니까? 그리고 왜 그런 메서드는 cancellationToken 매개 변수가 필요합니까?

답변

1

당신은이 행해져 Yout 결과를 얻을 때까지 블록을 실행 await 전화, 예컨대 :

var task = script.RunAsync(cancelletionToken: cts.Token); 

cts.Cancel(); 

var result = await task; 
+0

cts.Cancel() 별도의 기능에 이미 전에 수행해야합니다. 또한 UI 스레드에 있어야합니다. –