我定义了一个UI线程,用来动态记录一个网址上的数据,我需要同时启动几个这样的线程,记录不同网址上的数据。如果用AfxBeginThread(RUNTIMECLASS(MyThread))几次的话,各线程所用的变量是一样的(即变量的内存地址是一样的),会互相干扰,无法记录不同网址的数据。能不能让各线程使用自已的变量,而不是公用?
解决方案 »
- mfc 菜鸟求解!
- 用软按键映射键盘按键怎么实现按下一直按着软件键时,连续写键值的操作?
- 地震专家不是吃干饭的--地震预报和预测
- 用CButtonST出现了内存泄漏,谁有稳定的的版本呢?问题解决,马上结贴
- 如何将局柄(hwnd)转换为它的ID
- 请问如何在用 ALT 写的 ASP 组件中正确调用GDI+ ?谢谢!!!
- 请帮忙看看ADO编程时遇到的问题,使用_ConnectionPtr类型插入数据,在连续插入时会出错,“不支持此接口”
- 怎样得到菜单的宽度??
- 哪里有《深入浅出MFC》可以下载?
- 如何将BSTR型的数据转换为char* 呀?(在线等待)
- 怎样将一个CString类型的字符串复制到剪贴板?
- 一个绝对好的空间,数据库、ASP、CGI、JSP、。NET程序支持
AFX_THREADPROC pfnThreadProc,
LPVOID pParam,
int nPriority = THREAD_PRIORITY_NORMAL,
UINT nStackSize = 0,
DWORD dwCreateFlags = 0,
LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL
);用这个 AfxBeginThread
然后你可以把线程需要的数据结构通过 pParam 传递给线程以让各线程的数据都是自己拥有的.或者你在线程运行时动态地分配内存来处理.
1. 线程中只使用局部变量, 或
2. 使用线程局部存储(TLS)
.线程要访问的全局变量都用__declspec(thread)声明,如
__declspec(thread) int g_nGlobal = 0;