部分代码如下:
//------------线程创建-------------------------//
huatu:=sampthd.Create(true); //主要是对串口数据进行实时处理
huatu.Priority:=tpnormal;
huatu.FreeOnTerminate:=true; sampthd.create(false);//产生画图线程 mainthd:=true; //execute 方法中死循环变量,
huatu.Resume;//------------线程sampthd.execute方法-------------------------//
procedure sampthd.Execute;
var
...
begin
while mainthd do
begin
if in_index <> (out_index mod maxsize) then //对接受到的串口数据进行处理分析
begin //begin out
out_index:=(out_index+1) mod maxsize;
...
end;
end;
end.
//------------线程创建-------------------------//
huatu:=sampthd.Create(true); //主要是对串口数据进行实时处理
huatu.Priority:=tpnormal;
huatu.FreeOnTerminate:=true; sampthd.create(false);//产生画图线程 mainthd:=true; //execute 方法中死循环变量,
huatu.Resume;//------------线程sampthd.execute方法-------------------------//
procedure sampthd.Execute;
var
...
begin
while mainthd do
begin
if in_index <> (out_index mod maxsize) then //对接受到的串口数据进行处理分析
begin //begin out
out_index:=(out_index+1) mod maxsize;
...
end;
end;
end.
解决方案 »
- 百分求 delphi 登录系统
- 请问怎样用递归函数去除二值图象中的离散杂点??
- 我用得是DELPHI7+ADO+ODBC,數據庫是ACCESS,該怎樣打包呀? ODBC是文件DSN,打包后無法連接數據庫 請指示,謝謝!
- 求一ADO连SQLSERVER的小程序
- 求助!!请大家帮我看一下好吗?
- 关于combobox的问题
- 谁能知道他这个文本的加密算法?
- 500分相送!如何在Delphi中动态创建一个标准对象(如按钮控件),并在该对象事件内动态添加代码?
- 请问DELPHI 有跟VB的PictureBox功能相似的控件吗?进来有分分!!
- 调查:进者有分
- 请教:关于ISAPI过滤器的示例代码.
- regsvr32 d:\lj.dll 时出错
var
...
begin
while mainthd do
begin
if in_index <> (out_index mod maxsize) then //对接受到的串口数据进行处理分析
begin //begin out
out_index:=(out_index+1) mod maxsize;
...
end;
Sleep (1); //加一行 先得uses Windows
end;
end.
why?这是什么意思啊?
我是问我线程中的这个死循环有什么问题啊,我测出是因为使用了这个死循环才占用CPU100%的啊
application.ProcessMessages这个怎么用啊?用在线程中么?
wait()直接使用在死循环中么
to lemon_wei(soft_fans)
事件机制?我的死循环是用来等待接受源源不断的串口数据的啊,下位机数据发送频率为200HZ的啊
CreateEvent 创建一个事件,
没有数据的时候你的线程是等候状态,类似挂起,
一旦超时或者发生事件,你的线程就会继续了。参看 CreateEvent 这些API,网上应该有线程的例子。
按照你说的我感觉是你的sleep放的位置不对。你是不是把sleep放在画canvas 的循环里面了?大致步骤如下
begin
读串口数据;
画Canvas;
Sleep(0);
end;