我想开一个线程,用于操作串口,
串口的全部操作都封装在一个类里面是不是在线程的处理函数中,new一个对象,中间进行操作,线程结束时delete?
应该注意些什么?

解决方案 »

  1.   

    直接将类的this指针传给线程函数,线程函数里就可以调用类的方法
      

  2.   

    线程中不是要操作串口吗?还new什么?如果要操作界面,就按一楼的做法,将this传给线程。
      

  3.   

    原先程序结构是:
    一个对话框程序,在dlg包含comm1处理的文件
    comm1handle.h
    comm1handle.cpp
    并new一个对象Ccomm1handle * pcomm1;
    然后调用其成员函数现在想把一切和comm1相关的操作全都放到一个子线程里面,和主线程完全脱离。
    可否这样实现:
    在dlg中定义一个全局变量 Ccomm1handle * pcomm1;
    然后在子线程的处理函数中调用pcomm1的函数来完成发送接收。还是有什么好的办法?谢谢
      

  4.   

    噢,应该可以new吧,不过俺在线程里都是直接写代码了,没new过类,俺在线程中也用全局变量,不过都是一些HANDLE之类的。可以将Ccomm1handle * pcomm1做为参数传进去。
      

  5.   

     我想想
    1.还是在dlg中声明一个全局的Ccomm1handle * pcomm1; 
    在dlg初始化时对new一个对象
    然后开子线程,在线程处理函数中,调用它的成员函数。这样好不好?2.如果将Ccomm1handle * pcomm1; 定义为dlg的成员变量,new一个对象指针
    然后将其作为参数传给线程,在线程中频繁调用这个对象的某个函数
    是否会影响到主线程?(我个人感觉使用主对话框的某个成员变量就会对主线程造成影响)谢谢