在Win8.1 metro开发(C#)中,制定一个线程的具体实现如下:
Task task = Task.Run( () => { //要在另一个线程中执行的逻辑 }); //主线程执行逻辑
这个task任务就相当于旧版的Thread多线程,在.NET 4.0以后就统称为Task任务了。
Task task = new Task(() => { //任务逻辑 }); task.Start();//开始这个任务 task.ContinueWith((t) => { //任务结束后,执行这里 });
在执行过程中,界面不会僵死,这与异步编程相同,其实异步编程就是多线程的一种。异步编程相当于开启了不同于UI线程的一个线程用于处理逻辑。异步编程是一种编程模式,而其手段就是多线程。不同的是,对于上面的task,主线程和子线程会同时执行,但对于异步编程,await所在异步方法之后的执行语句要在异步方法执行结束并返回后才能得以执行,这是因为编译器在处理的时候会自动将await前(UI)后(异步方法)分成两个线程进行执行,在新线程执行完毕以后再回调至主线程继续执行await下一句指令。
在上面的task子线程中不能再await异步方法