我做了一个小的下载程序,但程序执行效率似乎很低,最明显的就是,在下载时这个程序就像“死机”一样,什么也干不成了。当下载完成后,程序才“缓过劲儿”来,恢复“活力”。
并且我目前程序的下载功能,还不能中断当前正在进行的下载,如果用户点了下载,就必须直到它下载完成后才能关闭。别人说必须用多线程,虽然这个词也经常听到,但具体还是不明白它的意思。
以及在我的程序里要怎样用多线程技术呢?对我现有程序的改动大不大?
各位能否讲讲呢,或者举个例程。
并且我目前程序的下载功能,还不能中断当前正在进行的下载,如果用户点了下载,就必须直到它下载完成后才能关闭。别人说必须用多线程,虽然这个词也经常听到,但具体还是不明白它的意思。
以及在我的程序里要怎样用多线程技术呢?对我现有程序的改动大不大?
各位能否讲讲呢,或者举个例程。
到www.google.com上搜索'delphi 多线程',会有一堆一堆的技术文章
WINDOWS的多任务其实就是吧CPU分成时间片,宏观的看就是多任务,微观的是分时处理,当伦到一个程序的时候这个正在执行的程序是一个程序进程,一个程序至少有一个进程和一个现成。
当然你也可以再吧这一个进程中再分成多个时间片,这就是多线程了。如下图
外筐是进程,内筐是线程
图1 单进程单线程 图2单进程多线程
|------------------| |-----------------------|
||---------------| | | |---||---||---||---| |
|| | | | | 线|| 线|| 线|| 线| |
|| 单进程 | | | | 程|| 程|| 程|| 程 | |
|| 单线程 | | | | || || || | |
|| | | | | || || || | |
|| | | | | || || || | |
||---------------| | | |---||---||---||---| |
|------------------| |-----------------------|
上图2 中有4个线程轮流执行,有负责界面的,有负责执行功能任务的,
而图1只有一个进程和一个线程,所以当你执行任务的时候,界面就有“假死现象”