将播放的核心封装为CMedia后,剩下的事情便是逻辑层了。对于写过UI程序,并且之前还做了点小程序的段伏枥来说,这并不是什么很难的事情。唯一的难点在于,播放的时候该如何显示滚动条以及时间。其实CMedia封装了获取当前时间的接口,当然也有获取整个长度的,根据两者的比例可以算出来滑动块的位置。至于时间的显示,只要转换一下,也根本不在话下。只是如何应该在哪里获取呢?主线程肯定是不行的,因为它只能被消息循环占据。所以,唯一的选择只能是多线程,而这便是段伏枥多线程旅程的开始。
   
   如何开始多线程,也是有章可循,在《Windows CE程序设计》就有相关的章节,只需要调用相应的函数即可。是不是非常简单?段伏枥也是这么想的。不就是在线程函数中获取时间,并做显示吗?有什么难度啊?相较之以前的菜鸟阶段,段伏枥整这音乐播放器的逻辑层速度也就快多了,一个星期左右,就将整个程序给完成了。看着自己亲手完成的音乐播放器,虽然比不上千千静听啊之类,但也让自己兴奋了好一阵。可在实际的测试中,段伏枥却发现了个致命的问题:在切换下一曲的时候,偶尔会崩溃!
   
   怎么回事,段伏枥这下可头大了。仔细查看了下代码,也找不出蛛丝马迹。索性将刷新线程给屏蔽掉吧!没想到,这么一来,一切正常!原来问题是出在多线程上!可这线程会有什么问题呢?咋看都不像有病的样子。段伏枥为此而苦恼了好几天。万事总有其原因乃至解决之道,有一天段伏枥不经意间看到一篇帖子,提到多线程可能会有资源占用的问题。不过这文章全是英文的,自己也没有仔仔细细全部看完,但毕竟给予了灵感。而顺着这灵光一闪,段伏枥找到了问题关键所在:在停止播放到开始播放另一个文件的这个间隔中,如果继续获取当前时间,那么程序将会崩溃!因为那时候实例已经释放,直接是使用空指针来提领,能不出错吗?
   
   找到问题的根源所在,似乎解决问题的方法也不难:不就是因为不知道当前的播放状态而导致的吗?自己增添一个变量,分别标示播放完毕以及播放开始,然后在线程中进行判断,这不就好了嘛?不能不说,这是一个非常正确的解决方式,但却并不彻底。崩溃的几率减少了,但却没有完全杜绝,偶尔的偶尔还是会崩溃。这究竟是怎么回事呢?不是已经设置标志了吗?为什么还会这样呢?这问题肯定还是因为多线程,可是根源在哪里?
   
   不得已,段伏枥只好硬着头皮将那篇英文文章看完。噢,原来如此!问题很可能在于,子线程在判断状态之后,然后开始获取当前时间的这个间隔呢,可能主线程已经将当前的实例给释放了!为了避免这情况的发生,只需要加上临界区即可。这么简单的问题,却让自己想了那么多天;而更为让自己汗颜的是,这种可能性在文章中已经明明白白写了出来,仅仅是因为自己的懒惰以及怕麻烦,只是匆匆看一眼,才引发了后续时间的浪费。果然,做技术的,没有那么多模棱两可,浅尝辄止永远只能有数不尽的麻烦。
   
   当将临界区这一利器添加到代码之后,段伏枥长长地舒了一口气:程序再也不见崩溃了。
   
   相对于段伏枥来说,沈俊就比较凄凉了。对于之前只接受过所谓的高等教育的大学生来说,普遍的动手能力和专业知识水平如何,想必地球人都知道。而沈俊偏偏也不是个例外,也是这普遍中的一员,也就是说,对于硬件设计,她也是一窍不通。只不过,对于软件来说,只要你选择了一个方向,那么很容易就能找到相关的入门资料,即使是入门的书籍也是片地开花。可是对于硬件呢?那就没那么幸运了?有谁见过手把手教的入门书籍的?公司里面唯一和硬件有点沾上边的,只有黄华中,想他给沈俊讲课?那是做梦!估计即使真想讲,也说不出个所以然来,毕竟水平在那摆着。黄华中所做的,便只是将机器的原理图扔给沈俊,然后丢下一句话:“你自己看看原理图,用心点,好好学学!”
   
   毫无经验的沈俊看着这原理图,连哭的心都有了:这些是什么啊?为什么要这么连接啊?而这大大的一颗芯片,究竟是做什么用的?段伏枥唯一能帮的,便是告诉她,可以在www.alldatasheet.com网站中能够查到相应的IC资料,除此以外,也爱莫能助。不过即使这么一小点,也足以让沈俊感激涕零,毕竟可以不用那么盲目了。
   
   黄华中交给沈俊的任务是,第二版回来了,有一些元器件没有焊上去,将它们给补上。段伏枥看着这贴片的元器件,心中不由发颤。想当年大学的时候,有一个设计就是焊接收音机。原理图,板子,元器件,什么都有,并且这元器件还是插件式的。如果仅仅以一般的焊接工的水平来看,焊接这些东西根本就是小儿科;可对于段伏枥来说,这可真不是一件省心的火,特别是怎么焊都无法上锡。一个不合格的焊接,能期望有什么良好的结果?所以,那收音机从来就没响过,连点沙沙的噪音都没有!所幸这门课的考核非常轻松,只要你拿着一台焊好的收音机,能收到节目,递给老师听就可以过关了。而这检查,也不是像考试那般需要大家一起进行,而是一个时间点,大家轮流进行。所以最后段伏枥便借了同学焊接好的一台收音机,蒙混过关。而对于借给自己收音机的同学,连饭也不用请,因为不仅是段伏枥,别的同学也是这么做的。甚至可以这么说,整个专业,大概一百来号人,而做出好的收音机不到十台。换句话来说,大家都是借着这不到十台的好收音机,互相轮流过关的。噢,My God,这便是所谓的天之骄子的残酷真实……
   
   虽然沈俊的硬件原理水平是一片空白,但在焊接方面还是过得去的。至少和段伏枥相比,已经是天壤之别了:沈俊能够焊接贴片器件,并且还能正常工作;而自己整的插件式,却是哑炮。
   
   沈俊来了没多久,便要回学校了,理由很简单也非常充分:毕业答辩。只不过,本来预计是两周之后回来的,但到了期限沈俊还是没有回来。怎么回事呢?吃饭的时候,段伏枥问了问黄华中,才知道事情的原委:毕业答辩没通过。
   
   毕业答辩通不过?这也太离谱了吧?虽然每个专业都是有指定的指标,规定这次要有多少人不通过的,但这些指标一般是落在那些经常逃课之类的黑五类啊!沈俊再怎么看,都不像这样的人。
   
   好奇,打个电话问问:“沈俊,怎么回事?毕业答辩没通过?”
   
   虽然仅仅是在电话中,也能听出沈俊愤怒了:“别提了!我们那导师,在答辩前两天,说我的这个课题太空泛了,不能作为答辩的题目,让我重新选题!哎,这课题是他出的让我选的啊!还有两天,居然跟我说这课题不行!要是真不行,干嘛不早说!只有两天,你能让我怎么办?”
   
   “后来呢?”
   
   “有什么办法,我就只好重新选新的课题咯,这两天通宵整论文,最后还是没过。现在只能等一周后的重新答辩了”
   
   听到这里,段伏枥明白了,因为之前他的一个高中同学也遇到过类似的事情,于是对沈俊说道:“噢,原来是这样。我知道你为什么不过了,其实如果你做点事,那么重新答辩你一样不过。”
   
   关系到切身利益,没有谁不心焦,沈俊急忙问道:“你说嘛!到底怎么回事,别卖关子了!我现在急死了!”
   
   听着沈俊这焦虑的声音,段伏枥继续问道:“你没有给老师送礼吧?”
   
   沈俊很奇怪地问道:“没有啊,这个有关系吗?”
   
   “你这傻妞!难道你没听出来吗?答辩前两天说题目不合格,这可能吗?摆明是暗示你,让你送礼啊!你想啊,作为导师,题目可不可以还不是他说了算?何况这题目还是他自己出的,说不合格那不是自己打自己嘴巴吧吗?他要的,是要你送礼!你不送,他肯定不会让你过!”
   
   沈俊吃惊得哦了一声,但还是有点不太相信地说到:“他不会这么恶心吧?毕竟人家是大学教授啊!”
   
   “哼,在中国,最恶心的就是这些叫兽和砖家,你看他们抛出来的论调,有哪些能获得大家的认可的?并且他们这些叫兽,如果评不上级别,看着别人的油水哗啦哗啦的,他们不眼红啊?他们也要拿好处的啊。那么这羊毛要出在哪里?那肯定就是在学生的身上!”
   
   这时候,沈俊已经有半分相信:“那怎么办?我要送点什么?”
   
   “买点酒哦,还有一条好点的烟,最好还包上个红包,应该也就差不多了……”
   
   “哦,那好吧。不用再送什么了吧……”
   
   “一般来说,应该差不多了。如果这叫兽死性不改的话,也许还需要潜规则一下……”
   
   沈俊疑惑了:“什么潜规则……”
   
   “就是演艺圈为了争到演女主角的那个潜规则啦……”
   
   沈俊在电话一头大叫:“啊?我不会为了这毕业证,还要献身吧?”
   
   段伏枥无奈地说:“我不知道你那导师的品性,最多我在深圳的仙湖公园帮你拜拜佛,让他将你那导师变成阳痿吧……”
   
   “你……”
   
   最后,沈俊还是按照段伏枥的建议,买了两瓶酒和一条烟,当然还包了个红包,送到导师家。据说那导师一开始还假惺惺说不能收礼物,但最后还是很高兴地拿走了,并且在第二天就给沈俊电话,说让她放心去答辩,一切包在他身上。结果自然是美好的,沈俊站在答辩台,念了一下论文的前言,就被告知答辩通过。虽然沈俊最后是花了不少钱,但所幸没有被潜规则,也算是不幸中之大幸。但至于为何没有被潜规则,是因为导师根本就没此打算呢,还是说段伏枥的拜佛起了作用,那也无从考究了……

《那些年啊,那些事——一个程序员的奋斗史》——41相关推荐

  1. 那些年啊,那些事——一个程序员的奋斗史 ——41

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 将播放的 ...

  2. 关于《那些年啊,那些事——一个程序员的奋斗史》——24提到的鼻炎治疗方法

    在<那些年啊,那些事--一个程序员的奋斗史>--24中有提到用清水治疗鼻炎的方法,很多朋友在留言或email都有问到这问题,在此一并做个回答.         简单说说norains的鼻炎 ...

  3. 《那些年啊,那些事——一个程序员的奋斗史》十四(完结)

    125 距离离职交接的一个月时间还剩几天,本来应该是平淡无事的,却没想到最后还是波澜四起.昨天下班前,公司突然停了电.这本是件普通得不能再普通的事情,可没想到过了一会来电了,或许是波峰电压太大,或许是 ...

  4. 《那些年啊,那些事——一个程序员的奋斗史》——128 (终章)

    周五,如约而至.张文香果然没有被邀请,武总自然也是被排除之列,来的都是平时大家谈得比较来的.几个月不见,小黑和小蓝还是老样子,但精神相比以前是好多了:麦吉则没什么太大的变化,倒是陈莉胖了不少,颇有一番 ...

  5. 关于 那些年啊,那些事——一个程序员的奋斗史 ——24提到的鼻炎治疗方法

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 在<那些年啊 ...

  6. 关于 那些年啊 那些事 一个程序员的奋斗史 24提到的鼻炎治疗方法

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 在< ...

  7. 《那些年啊,那些事——一个程序员的奋斗史》——79

    旧的4.3'主板是废弃了,新的带CMMB的板子开始了.对于新的板子来说,其实只是在旧的板子上做改动,比如删掉蓝牙模块啊,去掉视频输入啊等:最大的不同,只是根据Telechips的原理图增加CMMB部分 ...

  8. 那些年啊,那些事——一个程序员的奋斗史 ——23

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow "开会咯 ...

  9. 《那些年啊,那些事——一个程序员的奋斗史》——23

    "开会咯!"黄华中在研发部嚷了一下,让大家到外面的会议桌去.说起来,自从段伏枥来到这公司以来,已经差不多有好几个月,却连一个会都没有开过,甚至是小一点的内部会议都没有.为什么突然间 ...

  10. 《那些年啊,那些事——一个程序员的奋斗史》——117

    这段时间段伏枥在折腾.NET Micro Framework的时候,终于体会到什么叫举步维艰了.因为这玩意没有操作系统做支撑,直接是操作硬件,有时候出问题了,根本就不知道是如何引起的. 比如说,在移植 ...

最新文章

  1. python做数据库管理系统_python+Django+mysql+bootstrap前端,数据库一次搞定)从头教你毕设实现一个简易好看的仓储物资管理之类系统...
  2. udp组播的应用场景
  3. Ajax进入ERROR的部分条件总结
  4. 互联网时代的了解和未来的预期_互联网时代的四个特点你了解多少?
  5. IDEA Jsp乱码大全
  6. MFI认证——苹果MFI账号申请
  7. Cox模型中的时间依存协变量和时间依存系数(R语言)第二部分
  8. 面向对象使用python-docx模块制作格式化文本(奖状生成器)
  9. java 5分钟_java-时间格式化 整5分钟,整10分钟
  10. kb mac压缩图片大小_Mac系统怎么压缩图片
  11. 用python计算100以内所有奇数的和_python怎样求1到100的奇数和
  12. 降维打击!记录我在大二的腾讯面试
  13. HTML5期末大作业:个人空间相册网页设计 (6页) HTML+CSS+JavaScript
  14. snails1.0扫描器测试版
  15. 魔兽世界怀旧服最新服务器开发时间,怀旧服全部服务器开放时间
  16. C语言练习题-循环练习题
  17. 跟我学Python图像处理丨关于图像金字塔的图像向下取样和向上取样
  18. c语言rsi2010中制运行,汇编语言初探(控制类指令)-来自第三章3.6的笔记-P135-P163
  19. 2021年域名投资低迷,如何看待10年后的域名及域名前景?
  20. 如何设计一个开放平台openapi?

热门文章

  1. ios降级鸿蒙,iOS14怎么降级 ios14降级到ios13详细教程
  2. vmware ubuntu server(服务器) 屏幕显示不全
  3. spring boot火车票售卖系统毕业设计代码211004
  4. iPhone卡在一个界面出不来,怎么办?
  5. 3dsmax 扫描功能 点连接 绘制连接线
  6. 产业大观 | “制造之都”东莞谋变背后:服务型制造铺就荣光之路
  7. A-Level商务例题解析及练习
  8. python爬取妹子图网健康图片
  9. 4位先行进位加法器的vhdl程序_VHDL精密,Verilog简洁,但要写好都要遵守这25条通则...
  10. 在PPT上使用开发工具的不同控件实现单选操作