vc多线程编程
海浪
生活要有目标
展开
-
VC/MFC 不同进程间的消息通信与数据(字符串)发送
<br />出处:Windows应用程序捆绑核心编程3.4 使用WM_COPYDATA消息通信<br />对于少量数据可以用WM_COPYDATA方便地实现通信。由于SendMessage()是阻塞的,只有接收方响应了消息,SendMessage()才能返回,否则一直阻塞。所以,对于大量数据来说,用SendMessage()就容易造成窗口假死。3.4.1 通过WM_COPYDATA消息实现进程间通信的方法<br />在Win32中,WM_COPYDATA消息主要目的是允许在进程间传递只读数据。SDK文档推荐转载 2011-02-11 10:45:00 · 771 阅读 · 0 评论 -
MFC,在线程中创建对话框
UINT CTestDlgDlg::ThreadFunc(PVOID pv){//模态对话框// CAboutDlg dlg;// dlg.DoModal();//非模态对话框 CTestDlgDlg *Testdlg = (CTestDlgDlg*)pv; CDlgThread *dlg = new CDlgThread; dlg->Create(IDD_DIALOG1); Testdlg->m_MFCThreadHwnd = dlg->m_hWnd; Testdlg->dlg = dlg; d原创 2011-02-11 10:05:00 · 3592 阅读 · 0 评论 -
在线程中控制进度条
<br />利用消息的方式序列化操作是最好的方法,子线程可以将进度通过PostMessage的方法发给父线程的窗口,(一定要用PostMessage,不要用PostThreadMessage,这样才能保证收到。)父线程响应该消息,改变进度显示。OK?越是大型的应用,越应考虑用消息机制同步和传递数据,这是经验总结。 <br /><br />对话框的头文件中: <br />#define YOURMESSAGE WM_USER +1 <br /><br />在//}}AFX—— <br />与DECLARE——转载 2011-02-11 10:48:00 · 817 阅读 · 0 评论 -
使用VC/MFC创建一个线程池
有许多应用程序创建的线程花费了大量时间在睡眠状态来等待事件的发生。还有一些线程进入睡眠状态后定期被唤醒以轮询工作方式来改变或者更新状态信息。线程池可以让你更有效地使用线程,它为你的应用程序提供一个由系统管理的工作者线程池。至少会有一个线程来监听放到线程池的所有等待操作,当等待操作完成后,线程池中将会有一个工作者线程来执行相应的回调函数。 你也可以把没有等待操作的工作项目放到线程池中,用Que转载 2012-03-09 11:32:46 · 1997 阅读 · 0 评论