在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异步方法
本文详细介绍了在Win8.1 Metro开发环境下使用C#语言实现多线程和异步编程的方法。通过创建Task任务来在后台线程执行逻辑,确保主界面不被阻塞。解释了异步编程如何开启不同于UI线程的线程处理任务,以及在执行过程中如何避免界面僵死的问题。同时强调了在使用Task任务时不能在子线程中调用await异步方法的重要性。
5万+

被折叠的 条评论
为什么被折叠?



