2016-12-19 10 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() 
} 

Как еще я могу это сделать. А для чего такие методы требуют отмены параметра Token?

ответ

1

Вы должны сделать это до await вызова, который блокирует выполнение до тех пор, пока Yout получить результаты, например .:

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

cts.Cancel(); 

var result = await task; 
+0

cts.Cancel() уже в виде отдельной функции. Он также должен быть в потоке пользовательского интерфейса. –