win c语言创建线程,初学者 CWinThread 线程类

菜鸟 CWinThread 线程类求助

定义了这么一个线程

class CPreview : public CWinThread

{

DECLARE_DYNCREATE(CPreview)

private:

CRITICAL_SECTION m_cs;

EdsBaseRef FCamera ;

bool FMirror,FYMirror,FRotate;

bool bStop ;

void DownLoadEvfData();

protected:

CPreview();

CPreview(EdsBaseRef camera,bool CreateSuspended,bool bMirror,bool bRotate);

virtual ~CPreview();

public:

virtual BOOL InitInstance();

virtual int ExitInstance();

virtual int Run();

__declspec(property(get=GetMirror,put=SetMirror)) bool Mirror;

__declspec(property(get=GetYMirror,put=SetYMirror)) bool YMirror;

__declspec(property(get=GetRotate,put=SetRotate)) bool Rotate90;

protected:

afx_msg void OnStopView(WPARAM wParam,LPARAM lParam);

bool GetMirror()

{

return FMirror;

}

void SetMirror(bool bmirror)

{

FMirror = bmirror;

}

bool GetRotate()

{

return FRotate;

}

void SetRotate(bool brotate)

{

FRotate = brotate;

}

bool  GetYMirror()

{

return FYMirror;

}

void SetYMirror(bool bymirror)

{

FYMirror = bymirror;

}

DECLARE_MESSAGE_MAP()

};

这个线程在其它类中定义了一个实例

CWinThread *preview;

是这么创建线程的

preview = AfxBeginThread(RUNTIME_CLASS(CPreview),0,0,CREATE_SUSPENDED,0);

preview->m_bAutoDelete = true;

1.我想让它创建时挂起,但发现如果挂起了,再preview->ResumeThread(),无法唤醒

2.在线程类中,定义了一些变量,需要外界传递进来,使用上述方式创建时,它执行的是该构造函数CPreview();而不是这个,CPreview(EdsBaseRef camera,bool CreateSuspended,bool bMirror,bool bRotate);如果我想传递初始化参数,该如何处理

3.该线程需要长时间后台处理,下载图像数据,再用回调的形式将数据传递到主界面上,是否可重写RUN().如果可以,该怎么写,直接写个while(tru)么,看MSDN上说,最好不要重写

万分感谢!!!!

分享到:

------解决方案--------------------

我都是直接调用API的,MFC的东西一点都不懂,来帮顶一下

100308111.gif

------解决方案--------------------

“线程可以自己挂起但不能自己恢复”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值