AfxBeginThread,CreateThread,_createthreadex 或者别的高手给出答案并解释 谢谢.
解决方案 »
- MFC ActiveX控件使用的问题
- 想把一个别的窗口控件做成DLL,我应该建立什么类型的DLL工程?
- 借个地方问一下??
- 如何是CEdit添加内容时自动下滚
- 在WINDOWS系统中,子进程是个什么样的概念啊?
- 6000多列的ListCtrl,无法显示的问题?
- 两个按钮加载不同的的位图问题。
- pc机与PLC(可编程控制器)之间的通信问题
- 救命!!!!一个关于BSTR向char*转换的问题!我在一个BSTR中保存了一个“汉字”字符串,怎么转换成char*呢?
- 使用GetProcAddress需要什么条件
- 用LineTo画出来的线,如何得到上面每一点的坐标?
- 在写一个模拟提交表单的程序,有关中文的问题
If you reduce the default stack size, you can create more threads. 一楼说的是在default的情况下,而且如果在thread stack为1mb的情况下最多可以create 32个线程,但如果你减少stack size的可以创建多个线程。对于你说的同时能扫描1000个机器并不是开1000个threads,这是你理解上的错误,因为他是并发操作的,而非并行处理的。而同时处理这么多的机器不是简单的光开线程就能完成的。
agree with ouyh12345(五岭散人) and feimingbiao()
{
hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadScanProc,
(LPVOID)ptThreadParameter, NULL, NULL);
Sleep(1);
CloseHandle(hThread);
}我这循环建线程 有的时候正常速度 有的时候超快 导到.出错 不知道为什么 不稳定.
/////////////////////////////////////////////////////////////////////////////////////
最大的高手是你自己,只有你自己才能真正解决自己的问题.
^_^for (int nCount=0; ;nCount++)
{
hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadScanProc,
(LPVOID)ptThreadParameter, NULL, NULL);
Sleep(1);
CloseHandle(hThread);
}
///////////////////////////////////////////////////////////////////////////////////
疯子.你不断的CreateThread是什么意思?而且还是同一个线程.
一个线程只需要一次,除非这个线程已经结束!
每次都能到2000个线程左右么?
cnvb(壮士沈), Windows下没有线程数的上限,你想建多少就建多少,直到你的虚拟内存光了为止,你观察到的2000多一点儿是因为每个线程缺省占1M空间,最后用了2G你的机器吐血了。你把CreateThread的第二个参数从 0 改成 1024,这样就可以开 20 万个线程了。
------------------------
哦 对 不过没吐血,测试程序而已 呵呵 实际上没耗资源 fgwxybmt(++CV) ( ) 信誉:100 2007-09-07 10:03:02 得分: 0
我的程序有个banner 显示开端口的IP和线程目录的数量,建线程时的时间间隔是Sleep(1),在多数情况下的这个banner刷的都很慢,线程数量一直都不超过200, 但是有时不知道为什么速度就失控制,变的非常的快一能上1000多,但是影响了扫端口的质量,几乎扫不到什么. 好像与IP段无关,另外我肯定我没改过什么, 这种不稳定时不是的出现. 另外我提一下 我扫端口用的主要是connect这个函数!!
-------------------------------你的函数改下先
BOOL Runflag=TRUE;
while(Runflag)
{
if(NULL==CreateThread())//省略
{
Runflag=FALSE; }
else
//ok TODO:
}
就是在使用raw_socket,调用sendto()发送TCP包得时候 ,发不出去,要报10004这个错误
这个错误在sp2后都会有,不知道哪些大侠解决了,敬请赐教,感激万分!