急!求线程的例子。 (100分)

  • 主题发起人 主题发起人 black_horse1220
  • 开始时间 开始时间
B

black_horse1220

Unregistered / Unconfirmed
GUEST, unregistred user!
急!求线程的例子。
有的话,就发到我的邮箱里吧,一个例子100分!
wlandll@tom.com
wlandll@163.com
 
邮件已发,请查收
我也是才搞明白的,(还不是太明白)![:D]
 
偶有个vc的,要的话告诉我
 
WoDing:邮件已查收,能给我解释一下吗?
 
WoDing,请到这里签字领分!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2620649
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2620649
 
我给你的例子一共有四个,一个是不同步的,还有三个是同步的!
只是同步的方法不同,从文件夹的名字上来说是可以区分的!
其实说白了线程的同步就是让几个线程排成一个队列,串行执行。[:D]
 

为了这200分,我说说,我是照着D6的开发指南做的,呵呵

其实就是几个API的问题,如果API懂了,也就明白了
耐心的等哦!
 
TRTLCriticalSection是一个记录型的,M$故意隐藏了具体的结构,反正D已经为我们准备好了,就直接用吧!
initializeCriticalSection//初始化临界,也就是创建一个临界区

注意临界区:
EnterCriticalSection(CS); //让当前线程 进入临界区,如果不退出,其它的线程是不能进入了,当别的线程调用这个的时候,就只能在这里等待,等待前一个退出
//...........你的操作
LeaveCriticalSection(CS); //离开临界区

DeleteCriticalSection(cs);//删除啦

如果一个线程
 
来自:wen 时间:2002-5-24 8:56:00 ID:1120690

1 FSemaphore: THandle;
2 FSemaphore := CreateSemaphore(nil, FMaxCount, FMaxCount, nil);
3 if WaitForSingleObject(FSemaphore, Timeout) = WAIT_FAILED then
raise Exception.Create('too busy');
//IF 信號不為0則減一返回,否則等到Timeout返回-->無資源可用.
//在等待過程一有信號釋放,則激活等待線程.
4 ReleaseSemaphore(FSemaphore, 1, nil);//信號加一,激活等待線程.
5 CloseHandle(FSemaphore);
原理看操作系統-->陳火旺的很詳細.
SetEvent,ResetEvent看WIN32.HLP就明白了.


INFINITE 无时间限制,无限等下去,直到进入
WAIT_OBJECT_0 指定对象进入信号后的状态
 
我乱说一通,不知道楼主看的懂不,呵呵
 
多线程不难,难的是各自的同异步协调。
 
楼上的是高手吧,让他来说好了,或者你找点资料,或者在此留下:你有不明白的地方
我明天来看看,今天有点累了,[:D]
 
再次谢过WoDing同学。

到我的这个贴子看看吧,让你一次赚个够!哈哈。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2620640
 
不好意思,你的回复进了垃圾邮箱,哈哈,今天才看到
 
记住,我不是学生!
 
后退
顶部