15:46 2009-8-2
[知识库]
1.安装sqlserver 2005 ,装不上sql 客户端
先装sql 2005,装两遍,再装vs20005,
可能问题出在:装VS的时候,装了联机证书,这样客户端就装不上了,
2如果更改成Sqlserver 登陆时,没有用户名和密码,要在安全下面找,
[个人心得]
1,注意系统提示,进行分析,看是什么问题引起的,
2.sql2005 和 sql2008差别,
sql2008 多了智能提示
3,不能碎片整理,是因为360安全卫士
[问题]
1.treeview1 showlines不对齐,
2.treeview不刷新得到所选择的ID,在不刷新的情况下,
2.if else 折叠
4,hidden字段,request接收不到,但btn,可以接收到
[标记]
1.knowledgebasedb kbs_category
parentcategoryid,从0开始,
level 从1开始,
开头的结点从程序中加载。
2,拷贝网页快照到电脑上,
[孙鑫VC++]
1.CreateThread(1,2,3,4,5,6)
6,98线程ID系统须指定地址,2000以上为NULL
CreateThread(null:使用缺少的安全性,0:采用和调用线程一样的大小,Fun1Proc:线程入口函数地址
NULL:传递给线程的参数,这里不使用,0:创建标记,一旦创建,立即使用,NULL:线程ID,不使用,用NULL)
创建成功,会返回新的线程句柄
2.CloseHandle(hTread1);关闭句柄,并没有终止新创建的线程,
原因1,表示在主线程中,对新创建的线程不感兴趣,
2,关闭句柄时,系统会递减新线程的线程内核对象使用技术
系统会递减线程内核的使用技术,当为0时,系统会释放内核使用对象。
如果不关闭,始终包含一个引用,
即使线程执行完毕,线程内核对象也不会被释放 ,等到进程终止时,系统才会对
残留对象做清理工作,
所以不使用时,要关闭句柄, 让线程的内核引用技术减1,
3,新线程没有看到运行,
当创建线程之后,对于主线程,操作系统给他分配时间片,才会运行,在运行时间内,
运行,主线程执行完结后,主线程退出,进程退出,则该进程内的所有资源都退出。
所以看不到新线程运行
解决:主线程输出后,暂停执行,sleep(毫秒)
表示暂行放弃执行权利,则新线程开始运行,
4,主线程和新线程加个循环,while(i<1000),主线程和新线程交替运行
5,模拟火车站售票系统,多线程,
100张票,2个线程进行销售,做循环,不断运行while(true){if(tickets>0) cout<<"thread1 sell "<<tickets--<<endl}
主线程保证在卖完100张票之前,不能退出,调用Sleep(4000);主线程不战用执行时间,
隐患:当ticket为1时,可能执行时间片正好到期,系统会选择线程2运行,线程2执行卖票,ticket为0,转到线程1执行,但由于线程1是在if语句中暂停了,所以为卖票号为0的票会出再两张一样的票,