老赵,
你好,我在实际使用jscex的时候遇到这样一个问题:
--------------------------------------------------------------------------------------------------
var Task = Jscex.Async.Task;
var printAsync = eval(Jscex.compile("async", function (text) {
var i = 0;
while (i < 100) {
$await(Jscex.Async.sleep(1000)); // “暂停”一秒
Log(i++);
}
return i;
}));
// 得到Jscex.Async.Task对象
var task = printAsync("Hello World");
//task.start(); // 输出“Hello World”
Task.whenAll(task.start());
Log("Finished");
---------------------------------------------------------------------
按照我的理解是: Task.whenAll(task.start()); 在这个地方应该是等待async方法执行完毕了,才会顺序向下走。但是现在的问题是, Task.whenAll在这个地方好像没有起任何作用,完全不等待,直接就往下走了,是不是我那个地方代码写的不对?
当然我不想把Task.whenAll放在jscex.compile里面,放在这个里面是可以wait的。
谢谢
张勇
谢谢, 我明白!我想找的是c#下面的Task.WaitAll(*)的功能。你下面已经解释的很清楚了,但是我觉得如果能实现外面的WaitAll()功能的话,会更加灵活和强大。
张勇