Advertisement
Guest User

Untitled

a guest
Jan 21st, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. static void Main(string[] args)
  2. {
  3. CancellationTokenSource cts = new CancellationTokenSource();
  4. cts.CancelAfter(100);//отменяет задачу после указанного числа миллисекунд
  5.  
  6. var res = TaskWrap(cts.Token);//функции с поддержками тасков обычно имеют перегрузку с CancellationToken
  7. Console.WriteLine(res.Result);
  8. }
  9.  
  10. static Task<string> TaskWrap(CancellationToken ct)
  11. {
  12. TaskCompletionSource<string> tcs = new TaskCompletionSource<string>();
  13. ct.Register(()=> {/* остановить загрузку, чтоб данные больше приходили, если это возможно*/ tcs.SetException(new TimeoutException()); });
  14. //YourFunctionCallback(answer => tcs.SetResult(answer));
  15. return tcs.Task;
  16. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement