在MFC基于对话框的程序中,如何让一个函数在另一条线程上运行??

voidCSIT项目(基于对话框)Dlg::处理视频(VideoCapture&cap)这个函数要处理整个视频,每次运行这个函数后,程序很容易假死,而且其他按钮都失效,如... void CSIT项目(基于对话框)Dlg::处理视频(VideoCapture &cap)
这个函数要处理整个视频,每次运行这个函数后,程序很容易假死,而且其他按钮都失效,如何防止这种问题,让程序变的正常些。。。急啊。。。悬赏值不够。。。恳请大神帮个忙啊。。。
展开
 我来答
lgao622
推荐于2016-11-10 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6550
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部

1.定义一个静态函数 static  void ThreadDo(LPVOID p);

实现如下:

void CSIT项目(基于对话框)Dlg::ThreadDo(LPVOID p)
{
    CSIT项目(基于对话框)Dlg *pt = (CSIT项目(基于对话框)Dlg *)p;
    pt->处理视频(VideoCapture &cap);
}


2. 然后在要处理视频的位置启动线程 AfxBeginThread(ThreadDo, this);

追问
万分感谢!!
不过编译之后还是出了一些错,我改了几处后最后这个错误是在不知道该怎么改了:

错误 1 error C2665: “AfxBeginThread”: 2 个重载中没有一个可以转换所有参数类型
2 IntelliSense: 没有与参数列表匹配的 重载函数 "AfxBeginThread" 实例

麻烦再指点一下下~谢谢了~~
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式