##// END OF EJS Templates
Добавлена метка v3.0.16 для набора изменений 00a2d52813ee
Добавлена метка v3.0.16 для набора изменений 00a2d52813ee

File last commit:

r289:95896f882995 v3.0.14 v3
r298:a7c3390f6ac8 default
Show More
PromiseHelper.cs
40 lines | 1.1 KiB | text/x-csharp | CSharpLexer
using Implab;
using System;
using System.Threading;
namespace Implab.Test {
static class PromiseHelper {
public static IPromise<T> Sleep<T>(int timeout, T retVal, CancellationToken ct = default(CancellationToken)) {
Timer timer = null;
return Promise.Create<T>((d) => {
timer = new Timer(x => {
d.Resolve(retVal);
}, null, timeout, Timeout.Infinite);
if(ct.CanBeCanceled)
ct.Register(d.Cancel);
}).Finally(() => {
Safe.Dispose(timer);
});
}
public static IPromise Sleep(int timeout, CancellationToken ct = default(CancellationToken)) {
Timer timer = null;
return Promise.Create((d) => {
timer = new Timer(x => {
d.Resolve();
}, null, timeout, Timeout.Infinite);
if(ct.CanBeCanceled)
ct.Register(d.Cancel);
}).Finally(() => {
Safe.Dispose(timer);
});
}
}
}