日期:2014-05-16  浏览次数:20684 次

由于问题变化了,所以重新个贴子,是关于线程间函数调用及串口接收数据的问题?
我现在在接收线程中已经能成功调用图形界面的函数了,方法如下就是用
thread
{
void   thread::run()
{
Form1   a;
while(1)
{
a.readdata()
}
}
,可以成功调用我现在在线程中已经能调用了,不知道怎么又能了,就是用
Form1   a;
while(1)
{
a.readdata()
}
,可以成功调用readdata(),但是还是不能接收数据,不知道为什么,主线程中的读端口函数大体如下

void   form1::readdata()
{
...
nread   =(fm,buff,512):
printf(nread);
}
这里的readdata()里的printf能正常,即通过工作线程的不断调用在在后台不断打印出nread信息,但是接受不到数据,不知道为什么,这里的接受函数readdata()应该没问题,因为把readdata()做成slot后在本线程中就可以正常的接受数据,但是被别的线程中调用就不可以了,不知道什么?



------解决方案--------------------
线程调用有问题吧, 因为你的readdata可用.
查查线程相关的函数, 不行还是用进程吧.