Monthly Archives: January 2010

SynchronizationContext Learning

http://www.codeproject.com/KB/threads/SynchronizationContext.aspx多线程编程最常见的场景就是在Thead1中执行Threa2中的代码,再说具体一点就是UI线程启动一个工作线程,工作线程修改UI来汇报自己工作的状态。对于这种场景,可以获取UI 线程的SynchronizationContext对象,把它传递给工作线程,工作线程再调用SychronizationContext.Send 或Post来执行UI线程中的代码。 常见用法为//Form 构造器中获取contextthis.context = SynchronizationContext.Current; Thread thread = new Thread(t =>{    Thread.Sleep(150);     this.context.Post    (        r =>        {            this.ChangeUI();        },        null    );});thread.Start(); 注意:不是所有线程都可以获得SynchronizationContext对象。只有UI线程中生成一个UI Control(一般就是Form)后,调用SynchronizationContext.Current获取SynchronizationContext。 SynchronizationContext.Current是一个static属性,其返回值不是AppDomain唯一的,而是Thread唯一的。

Posted in .NET CLR | Leave a comment

ref key causes a compiling error

private void ProcessList<T>(ref IList<T> list){ } private void ProcessComponent(ref IComponent a){} List<int> list = new List<int>();this.ProcessList(ref list);   //Error!! this.ProcessList(list);       //Work wellComponent c = new Component();this.ProcessComponent(ref c);    //Error!! The error message are:cannot convert from ‘ref System.Collections.Generic.List<int>’ to ‘ref System.Collections.Generic.IList<int>’cannot convert from … Continue reading

Posted in .NET CLR | Leave a comment

MousLeftButtonDown event does NOT fire when the grid’s Backgroud property is null

Here is the sample:<Canvas x:Name="Carriar" MouseLeftButtonDown="Canvas_MouseLeftButtonDown" Width="100" Height="100">  <Grid x:Name="Grid" ShowGridLines="True" MouseLeftButtonUp="Grid_MouseLeftButtonUp" Background="Gray">      <Grid.ColumnDefinitions>          <ColumnDefinition />          <ColumnDefinition />      </Grid.ColumnDefinitions>      <Grid.RowDefinitions>          <RowDefinition />          <RowDefinition/>      </Grid.RowDefinitions>       <Rectangle x:Name="BlueRect" Width="100" Height="100"             Grid.Column="0" Grid.Row="0"             Fill="Blue"           MouseLeftButtonUp="BlueRect_MouseLeftButtonUp"/>       <Rectangle x:Name="BlackRect" Width="100" Height="100"             Grid.Column="0"  Grid.Row="1"             … Continue reading

Posted in Programming | Leave a comment

(ZT)我的涉黄简史(黄书篇)

http://www.bullogger.com/blogs/alading512/archives/351564.aspx 这几天很多友人在测试短信,韩寒同学正在身体力行。伟大祖国要把所有人的房事都管起来,我知道,一个维多利亚时代就要来临了。挺好,我对这种时代充满期待,因为,通常管裤裆管得最严苛的时代,都是黄色文学绚烂多姿的时代。孩子们,你们有眼福了。少时我读过的最过瘾的黄书是张竞生博士的《性史》,该书远非凡品,描述做爱姿势之丰富,文字之美,其他黄书只能望其嘿咻嘿咻的项背。《少女之心》跟它比不惭其黄,却惭其真。一度是枕下必备之物,另一必备之物是卫生纸。 高中偶得《查泰来夫人的情儿》,如获至宝,看完后在同学中旅行一番,回来时再看,那关键的若干页已被某个孙子撕了去。还好,那个鸟时代,“簪花”两字引发的联想就可以供一少男意淫许久了。 《灯草和尚》无缘见得一本整书,到手时约有七八十页的样子,呈烂菜花状。但已惊为天书了,那时常做变大变小的梦,醒来胯下冰凉心中惆怅。平生第一次读王小波,一看他把那话儿唤作小和尚,便浮上一脸坏笑,接着,伟大导师灯草和尚浮现于脑海……不过竟是成奎安的形象,因为,那时刚欣赏完陈宝莲和大傻哥的三级…… 《少女之心》读的是手抄本,至今还记得那字体有几分秀气,我怀疑是某个NB的前辈姐姐亲手誊抄的,这么一联想的效果很不错,至于怎么不错我不说你也知道。 伪托卧龙生的黄书也读了不少,那时已有租书的小店肆。我常去的那家有一大妈盘踞,我是常客,都是等屋中无人时才张口租书,大妈神秘地塞给我,宛如敌特或者余则成。陌生的后生冒冒失失地找她要卧龙生,大妈尝予以训斥:小小年纪也不学点好,你得看点好书,新到的《倚天屠龙》你看不? 那个假卧龙生黄色武侠写得很差劲,“一枪直抵花心”能出现八百次,想象力太差劲了,黄书不是谁都能写的。我们院一孩子曾拿着卧龙生向我炫耀,不才我随口背诵了一段《肉蒲团》,当下那孩子就傻了,下边的小帐篷也支起来了。明清是中国人的维多利亚时代,写小说的变态得多,不过文采没得说。施耐庵是BT中的战斗BT,估计是被一姓潘的女人始乱终弃,所以潘金莲被叔叔挖了心,潘巧云被老公掏了五脏六腑。总之水浒里的女人没一个三从四德,偷小叔子的偷小叔子,偷大和尚的偷大和尚,无一好死。正面形象的女的,一母大虫一孙二娘,后者是八仙饭店之人肉叉烧包的女版黄秋生,看谁都像包子。就一扈三娘不错,盘靓条顺一身武功,可万恶的施耐庵偏偏把她经另一变态宋江之手,配给了猥琐男王英,酿造了一出大宋杯具。与之差不多的是《封神》里的土行孙和邓蝉玉,前者也是个猥琐男,其法术叫地遁,干的是见不得天日的勾当。有关他俩那段也是当黄书看的, “暖玉温香檀口香腮”,只八个字,便叫人心旌摇曳。【封神】里土行孙这孙子简直幸福死了。那时穷极脑沟脑回,也想象不出邓蝉玉有多美皮肤有多滑,总之是人间不该有的极品,话说土行孙想硬上弓,邓说:贱妾系香闺幼稚不识云雨,乞将军怜护……这一句读了上头,晕晕的如同醉酒,半晌缓不过来。到夜里,在梦中召唤邓蝉玉,每唤必至,每至必梦遗。太 It worked了…… 某年从一女生处借来一本《苍茫时分》,作者70以前的老家伙们都熟,山口百惠,这是她的自传,其中有一段写她去看妇科,那一段叙事看得我心如猪撞。时值放学路上,狗一样夹着小腿艰难地回了家。 有个日本作家叫大薮春彦的,一度是租书店的头牌,与之一时瑜亮的也是个鬼子,叫西村寿行。这二位的共同点是很黄很暴力,再加少许变态。后者的名字一听就让半大小子海绵体充血。许多年以后,才知道《追捕》就是改编自他的小说,原著叫《淌过愤怒的河流》,曾发表在国内一本牛逼的文学期刊上。昨天推上一兄弟考证,这二位是同一个人。补充一句,忘了提一下弗洛伊德。高中前居然曾看到他的一本书,性心理什么的,记得他描述一个女孩反复把食指放入一个小盒子,老弗说这是性的潜意识。读完这段后我就观察同班的女生,没发现有把葱指伸入铅笔盒的。那时的女生风骚得少木制的多,当时我怀疑她们都是无性繁殖。 总结如下:那个时代以累累黄书完成了对自己的生理启蒙,不用感激那些讳莫如深装腔作势的生理卫生老师,堪称自学成才。并且居然没有成长为强奸犯,可称奇迹。按照我们老师的说法,看黄书的学生都是流氓,见了女生就要扒裙子,扒完了就要一枪直抵花心,假如真得像敝师说的那样,我肯定活不到今天,那时候严打,别说直抵花心,露阴癖逮着都毙。    

Posted in 摘抄转贴 | 1 Comment

A* 算法的C#实现(笔记)

原文见:http://www.codeguru.com/csharp/csharp/cs_misc/designtechniques/article.php/c12527__2/搜索关键字"pathfinding algorithm a-star" 和本文相比,前一次的A*算法入门文章和演示程序 有下列地方值得学习1. 不要用AStarPathNode来构造PathFinder的Matrix,Matrix仅仅是byte[,],需要对Matrix中某个元素进行处理时再构造相应的AStarPathNode2. 对每个Matrix中的元素取值不仅仅0和1,而是代表其权重,0表示障碍物,1表示平地,n表示高山,沼泽难以行走的地方,Weight越大越难以通过。节点G值会根据Weight进行计算。     newG = parentNode.G + mGrid[newNode.X, newNode.Y];3. 使用Closed List,用于判断是否达到寻路次数的上限。如果Closed List中的节点数达到某个数值(Search Limit),就停止寻路。4. 设置A* 算法的参数,    Search Limit :如果Closed List中的节点数达到某个数值(Search Limit),就停止寻路。    Heuristic Formula:使用不同的算法来计算节点的H值,确省为Manhattan算法。    Diagonals:是否处理对角线上的相邻节点       如果Diagonals = false,就意味着找到的路径都是直线               HeavyDiagonals:是否认为走对角线比走直线更远,表现在算法上就是:       if(HeavyDiagonals)           newNodeGValue = parentNode.G + Matrix[newNode.X, newNodeY]*2.41;  … Continue reading

Posted in Programming | Leave a comment

淘宝刚颁布的 成人类目商品发布新标准

http://bangpai.taobao.com/group/thread/58509-3189179.htm 将来可以成为研究历史的珍贵资料,价值不低于《清文字狱档》

Posted in 摘抄转贴 | Leave a comment

这招有点毒

Posted in Entertainment | Leave a comment