默认情况下,task 是有线程池中的异步线程执行,是否执行完成,可以通过task的的属性iscompleted 来判断,
如果想在子线程工作完成之后,在进行后续主线程工作可以通过调用task.wait() 来等待线程完成,调用wait 后,当前线程会被阻塞,直到到子线程完成。
代码示例:
static void main(string[] args) { task t = task.run(() => { thread.sleep(500); console.writeline("lance"); thread.sleep(500); }); console.writeline("t.iscompleted=" + t.iscompleted); t.wait(); console.writeline("t.iscompleted=" + t.iscompleted); }
运行结果:
2.wait 设定等待时间
static void main(string[] args) { task t = task.run(() => { thread.sleep(500); console.writeline("lance"); thread.sleep(500); }); console.writeline("t.iscompleted=" + t.iscompleted); bool iscomplate= t.wait(200); console.writeline("wait 200毫秒后 t.iscompleted=" + t.iscompleted); thread.sleep(1000); console.writeline("t.iscompleted=" + t.iscompleted); }
运行结果:
以上就是task用法之任务等待wait实例的详细内容。
