积极答复者
vc6中单句cout语句重复显示两次

问题
-
#include <windows.h>
#include <iostream.h>
DWORD WINAPI Fun1Proc(
LPVOID lpParameter
);
DWORD WINAPI Fun2Proc(
LPVOID lpParameter
);
int index = 0;
int tickets = 100;
HANDLE hMutex;void main()
{
int index = 0;
HANDLE hThread1,hThread2;
hMutex = CreateMutex(NULL,FALSE,NULL);
hThread1 = CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);
hThread2 = CreateThread(NULL,0,Fun2Proc,NULL,0,NULL);
CloseHandle(hThread1);
CloseHandle(hThread2);
cout<<"main thread is running"<<endl;
Sleep(4000);}
DWORD WINAPI Fun1Proc( LPVOID lpParameter )
{
cout<<"thread1 is running************"<<endl;
while (TRUE)
{
WaitForSingleObject(hMutex,INFINITE);
if (tickets>0)
{
cout<<"thread1 sell ticket :"<<tickets--<<endl;
}
else
{
break;
}
ReleaseMutex(hMutex);
}
return 0 ;
}
DWORD WINAPI Fun2Proc( LPVOID lpParameter )
{
cout<<"thread2 is running&&&&&&&&&&&&&&&&&&&"<<endl;
while (TRUE)
{
WaitForSingleObject(hMutex,INFINITE);
if (tickets>0)
{
cout<<"thread2 sell ticket :"<<tickets--<<endl;
}
else
{
break;
}
ReleaseMutex(hMutex);
}
return 0 ;
}这是孙鑫的深入详解vc++书上线程的一个例子,我的问题这样的:
我使用的软件版本是vc6.0英文版
在我运行程序后,
cout<<"main thread is running"<<endl;
这条语句会运行两次,我对其进行文本编辑后(比如换行,或是在前面加一句cout输出,运行一次后删除),问题解决。
但是再运行时线程1 DWORD WINAPI Fun1Proc( LPVOID lpParameter )中的
cout<<"thread1 sell ticket :"<<tickets--<<endl;
这条语句运行了两次,我再对其进行文本编辑,然后恢复原样后,问题解决。
再运行时线程2 DWORD WINAPI Fun2Proc( LPVOID lpParameter )中的
cout<<"thread2 sell ticket :"<<tickets--<<endl;
这条语句运行了两次,我再对其进行文本编辑,然后恢复原样后,问题解决。
问题到底是什么?下次要是有很多个cout语句的话,我都要再修改一下?
我昨天新装了visual assist X。 是不是和这个编辑器有关?
请大家给出意见,谢谢!
答案
-
您好,
如果您怀疑是Visual assist X 导致的问题,建议您使用Visual Studio 的安全模式,在这个模式下一切插件都被禁用。然后您再看结果是否有异常
http://msdn.microsoft.com/zh-cn/library/ms241278(VS.80).aspx
致礼
Jesse Jiang [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 lucy-liuModerator 2011年2月7日 9:43
全部回复
-
您好,
如果您怀疑是Visual assist X 导致的问题,建议您使用Visual Studio 的安全模式,在这个模式下一切插件都被禁用。然后您再看结果是否有异常
http://msdn.microsoft.com/zh-cn/library/ms241278(VS.80).aspx
致礼
Jesse Jiang [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 lucy-liuModerator 2011年2月7日 9:43