代码改变世界

关于自定义通知事件的跨线程问题(转)

2011-12-14 00:03 by Andrew.Wangxu, 559 阅读, 0 推荐, 收藏, 编辑
摘要:[知识背景] 所谓自定义通知事件,就是指在自己的类中定义的事件,该事件用于向调用者发出通知。比如做一个下载工具,下载是需要时间的,用户在界面里点击“下载”之后,我的下载类在后台开启线程开始传输数据,前台界面上可以同时执行其他操作。当数据传输完成,需要通知界面(调用者)已完成下载,以便界面上做相应的改变。这就需要在我的下载类中有类似 DownloadCompleted 的事件,这样在用户的代码中可以通过 downloader.DownloadCompleted += new new EventHandler(XXXXX) 进入他自己的事件处理函数。 这里说的跨线程问题,是指非法的跨线程调用问题。还用上个例子,在下载完成时,需要改变界面中 Label 控件的 Text 属性以提示用户下载完成。这就牵涉到在另一个类所创建的线程中操纵UI线程中创建的控件。这种做法在 .NET 中是不推荐的,同时这样会严重影响代码质量。(可参考MSDN:ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_fxmclictl/htm 阅读全文

C++ cctype定义的函数 - 学习笔记(7)

2011-12-12 23:57 by Andrew.Wangxu, 402 阅读, 0 推荐, 收藏, 编辑
摘要:这里一个简单的例子,查找出字符串中有几个标点符号。 代码如下: #include using std::string; #include using std::isupper; using std::toupper; using std::islower; using std::tolower; using std::isalpha; using std::isspace; #include using std::cout; using std::endl; int main() { string s("Hello world!!!"); string::size_type punct_cnt = 0; for(string::size_type index = 0; index != s.size(); ++index) if(ispunct(s[index])) ++punct_cnt; 阅读全文

C++ 使用头文件 - 学习笔记(6)

2011-12-11 15:36 by Andrew.Wangxu, 391 阅读, 0 推荐, 收藏, 编辑
摘要:经过学习,我自己理解为:C++头文件也就是相等与 C#中的“类” 的概念吧。 使用书中提供的Sales_item.h头文件,实现计算“书”的价格计算。 代码如下: #include #include "Sales_item.h" int main() { Sales_item book; std::cin book; std::cout book std::endl; return 0; } 阅读全文

C++ While中以cin作为条件 - 学习笔记(5)

2011-12-11 15:07 by Andrew.Wangxu, 577 阅读, 0 推荐, 收藏, 编辑
摘要:条件要求:指定一个程序可以输入N个数字,然后计算其数字的和。 实现代码如下: #include int main() { int sum = 0, value; while(std::cin value) sum += value; std::cout value ” 它从标准输入读取一个数并且将读入的值保存在 value 中。在接收一个输入的值的时候如果不所整数则接收的流是无效的,如果处于无效状态的流将会导致条件失败,就会退出while循环体。 阅读全文

C++ If学习笔记(4)

2011-12-11 14:40 by Andrew.Wangxu, 207 阅读, 0 推荐, 收藏, 编辑
摘要:例子功能:比较数字a与数字b的大小 代码: #include int main() { int a,b; std::cout a; std::cout b; if(a b) { std::cout "a大于b" std::endl; } else { std::cout "a小于b" std::endl; } } 阅读全文

C++ For学习笔记(3)

2011-12-11 14:18 by Andrew.Wangxu, 164 阅读, 0 推荐, 收藏, 编辑
摘要:以下程序演示0~9相加之和: #include int main() { int sum = 0; for(int val = 0; val 10; val++) sum += val; std::cout "十次相加之和为:" sum std::endl; } 阅读全文

C++ While学习笔记(2)

2011-12-11 14:03 by Andrew.Wangxu, 243 阅读, 0 推荐, 收藏, 编辑
摘要:以下代码要求用户输入5个数字,然后求出这5个数字之和: #include int main() { int sum = 0, val = 0; while(val number; sum = sum + number; val++; } std::cout "数字相加之和为:" sum std::endl; return 0; } 阅读全文

C++学习笔记(1)

2011-12-11 12:59 by Andrew.Wangxu, 983 阅读, 0 推荐, 收藏, 编辑
摘要:折腾了好几天,终于编译出第一个C++程序。 为什么要折腾这么久呢?因为编译环境的原因,起初打算在VS2010中进行编译的,正准备编写时,对自己发问了:在VS2010中编译那部就变成了C++.NET ?这不是我要的效果,后来打算用VC6.0,安装好后简单看了下,看来这玩意儿是非常古老的了。 还所转移到LInux阵营吧,于是又重新安装了爽系统(Win7 + Ubuntu 11.10)。。 阅读全文

SQL 常用列转行例子

2011-12-09 15:19 by Andrew.Wangxu, 346 阅读, 0 推荐, 收藏, 编辑
摘要:这是一个列转行的例子,先上代码再上图吧~~ SQL Server 2005 测试通过~ CREATE TABLE TB(date SMALLDATETIME, matter NVARCHAR(5)) INSERT TB SELECT '2008/12/15', N'吃饭' UNION ALL SELECT '2008/12/15', N'上班' UNION ALL SELECT '2008/12/15', N'睡觉' UNION ALL SELECT '2008/12/16', N'休息' UNION ALL SELECT '2008/12/16', N'逛街' GO 阅读全文

学计算机的你伤不起啊!!!!!!(转)

2011-12-06 22:09 by Andrew.Wangxu, 1389 阅读, 2 推荐, 收藏, 编辑
摘要:学计算机的你伤不起啊!!!!!! 老子六年前开始学计算机啊!!!!!! 于是踏上了尼玛不归路啊!!!!!! 谁特么跟老子讲计算机是王道专业啊!!!!!! 尼玛路边乞丐都是程序员!!!!!! 会打代码的一大把啊 有木有!!!!!!!!! 谁再跟老子讲计算机是王道专业 老子一个键盘盖死你啊,一个鼠标线勒死你啊!!!! 尼玛一上大学就找不到女朋友!!!!!! 班上男女比例八比一,八比一啊!!!!!! 都塔玛建军节了!!!!!! 就八比一还有学长来抢有木有!!! 本科学长,研究生学长还有博士学长!!!!!! 玛德学长你们是兔子啊就这么喜欢啃嫩草!!!! 还草!!!!!! 等熬过一年去迎新,一件行李十几个人竞争!!!!!! 要打群架了有木有!!!妹子吓哭了有木有!!!!!! 阅读全文

SQL语句创建表并插入指定N条数据(用于测试)

2011-12-06 09:01 by Andrew.Wangxu, 408 阅读, 0 推荐, 收藏, 编辑
摘要:CREATE TABLE [dbo].[TestTable]( [D_Id] [int] IDENTITY NOT NULL, [D_Name] [varchar](50) NULL, [D_Password] [varchar](32) NULL, [D_Else] [varchar](4000) NULL, CONSTRAINT [PK_TestTable] PRIMARY KEY CLUSTERED ([D_Id] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO 阅读全文

C# 邮件发送,可根据需求修改为群发~

2011-12-06 08:58 by Andrew.Wangxu, 3312 阅读, 8 推荐, 收藏, 编辑
摘要:- -, 我直接上图 上代码吧。 阅读全文

解决ASP.NET中异步操作错误提示:此上下文中不允许异步操作

2011-12-06 08:55 by Andrew.Wangxu, 273 阅读, 0 推荐, 收藏, 编辑
摘要:修改下就行了 - -!参考:http://www.wxzzz.com/?id=65 阅读全文

(转)C#监视某张表SqlDependency学习笔记

2011-12-06 08:54 by Andrew.Wangxu, 571 阅读, 0 推荐, 收藏, 编辑
摘要:sqlDependency提供了这样一种能力:当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的. 快速上手可参见园友的下列文章 阅读全文

使用SqlDependency时提示当前数据库未启用Service broker

2011-12-06 08:50 by Andrew.Wangxu, 352 阅读, 0 推荐, 收藏, 编辑
摘要:解决办法: ALTER DATABASE 数据库名称 SET NEW_BROKER WITH ROLLBACK IMMEDIATE; ALTER DATABASE 数据库名称 SET ENABLE_BROKER; 阅读全文