在程序中用:CreateThread(nil,0,@ThreadFire,nil,0,ThreadID);
在双核、超线程的CPU运行时会出错(通常会在运行1-2个小时后出错),
而单核和非超线程的CPU运行几十个小时都一切正常。具体出错为:
“XXXXXXXX”内存,该内存不能为“read”。其中:
ThreadFire是一个循环执行的过程。
在双核、超线程的CPU运行时会出错(通常会在运行1-2个小时后出错),
而单核和非超线程的CPU运行几十个小时都一切正常。具体出错为:
“XXXXXXXX”内存,该内存不能为“read”。其中:
ThreadFire是一个循环执行的过程。
解决方案 »
- 多少专家分才是三个裤衩啊? 进者有分!
- [散分,第一次在Delphi发贴,多多照顾,^_^]手写签名扫描后的报表打印问题
- xp和xp只能单向访问问题
- 窗体关闭的问题
- 请教一个问题,Oracle中查询出错。“invalid datetime format”
- 怎样用最简单的方法实现邮件的群发??
- 组合框在程序运行过程中原本是可以给用户输入和选择的,但是怎么让它只能选择,不能输入呢
- 我想调出一个窗口来选择一下目录,用savedialog的话又太多了一些,我只需要得到一个保存目录的路径就够了//瑶瑶
- 请问,怎样解决acess violation
- 如何在程序中打开一个。。。。
- FastReport中的字段提示名如何改成中文
- HELP~解释一行代码
这样可以确定该线程在哪个cpu里面跑
在多cpu、多核中,会随机的获得不同的序列号.
这就为我们根据cpu序列号来制作注册机带来了很大的麻烦。
Windows 2000/xp允许设置进程和线程的亲缘性。
换句话说,可以控制哪个C P U能够运行某些线程。这称为硬亲缘性。
Windows提供了设置亲缘性的函数SetProcessAffinityMask 。
使用它来控制获取指定cpu的序列号。
不要去怀疑双核、超线程有问题,从代码上找出线程非局部变量,检查下是否正确使用了临界