几个关于线程简单的问题。(100分)

  • 主题发起人 主题发起人 wsd
  • 开始时间 开始时间
W

wsd

Unregistered / Unconfirmed
GUEST, unregistred user!
本人学习DELPHI及WINDOWS编程时间很短,有几个基本问题向各位请教:
(1)WINDOWS中的消息机制是何意思?
(2)线程的作用是什麽?在DELPHI中如何实现,能否给出一个非常短小的
例程。
(3)我在做一个串口通讯的程序,可否用下列方法实现?
1:创建两个线程:检测断口线程JIANCE_THREAD,和读端口线程
READ_THREAD;
2:JIANCE_THREAD一旦检测到某一种WINDOWS消息,就向READ_THREAD
发出作用。
至于线程间如何作用,还望各位指教!
 
1) 所谓消息机制,就是Windows系统已经个程序间相互传递“消息”(信息)
的方式,消息的发送、传递和对消息的响应是Windows工作的基本方式。
2) 线程是什么……在Windows中独立占用一段CPU资源、但有依附于Process
的东西。短小的例子可以见:
.../Borland/Delphi 5(3/4)/Demos/Threads/Thrddemo.dpr
例子中,你的程序就是Process,TThread.creat则产生另个线程,在那个线程
里,你可以让它做你想做的事,一旦这个Thread.execute了,它将与你的主程
序的代码“并行”执行。
对不起,如果你想要科学的定义,请去看有关的专业书。
3) 如果你对串口通信不很精通,建议你找一些串口通信的控件,而不是
自己写代码。

 
我的老师是这样教我的:
windows是事件驱动的程序,整个围绕着消息的产生和处理来执行过程。
消息从输入设备--系统队列--相应的应用程序队列。 应用程序的消息循环接收到
消息后,送给相应的窗口函数。
消息循环的常见格式:
while (Getmessage(&Message,NULL,0,0))
{ TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
关于串口通讯,可以这样:
首先的一些准备工作,如createfile,填充overlapped,DCB...就不提了
建立两个线程,线程中用waitforMultipleobject来等待一系列预定义的事件发生,如发送空或接收满,控制命令等,用这种方法来保持两个线程间的同步。
消息传递用post(thread)message
读写串口用read/writefile
听老师讲用API函数做通信并不好 :(
班门弄斧,让各位大侠见笑了。
 
多人接受答案了。
 
后退
顶部