Здравствуйте, Ikemefula, Вы писали:
S>> Кстати про потоки и зоны
I>Ребята пока путают реактор с проактором. Как разберутся, тогда можно и зоны смотреть.
Смишно, эти "ребята" уже сто лет как проглотили ваши "зоны" и выкакали.
C#:
// асинхронная зона
Task task1 = Task.Factory.StartNew(lambda);
// синхронная зона
Task task2 = new Task(lambda);
task2.RunSynchronously();
C++:
// асинхронная зона
future<void> fut1 = async(launch::async, lambda);
// синхронная ленивая зона
future<void> fut2 = async(launch::deferred, lambda);
// синхронная энергичная зона
packaged_task<void()> task(lambda);
future<void> fut2 = task.get_future();
task();
А уж ваши runZoned, так вообще смехотворными получаются:
template<class Lambda, class NormalCallback, class ErrorCallback>
void runZoned(Lamdba l, NormalCallback n, ErrorCallback e) {
try {
n(l());
} catch(...) {
e(current_exception());
}
}
А слабо показать мне ленивую зону в JS?