代码改变世界

跨线程操作变量的陷阱。

2012-12-08 22:05 by Tsanie, 362 阅读, 0 推荐, 收藏, 编辑
摘要:说是陷阱,主要还是编写代码的时候没注意……今天有段程序出现了一个很诡异的情况,如下:for (int i = 0; i < max; i++){ // ... form.BeginInvoke (new MethodInvoker (delegate { // A int tmp = i; System.Threading.Thread.Sleep (100); }));}原先预想是A处触发max次,每次值分别为0,1,2,……max-1。结果事实上是0,max-1,max-1,……max-1。经过调试,发现form的UI线程上使用的变量i地址和循环体的i地址一致,而不是他的拷贝。(我以 阅读全文

PreviewManager - 缩略图扩展管理库(可自由增加或删除缩略图插件)

2012-07-09 17:14 by Tsanie, 1024 阅读, 0 推荐, 收藏, 编辑
摘要:功能:用于管理各类缩略图的扩展,可派生出插件以支持不同类型的文件。单独应用域加载插件,支持即时卸载、更新插件等。预览效果:如上述三图分别是3个缩略图插件最终提供的效果,这些插件通过PreviewManager统一加载、卸载等管理。如图可以随时加载、卸载插件(准备添加一个UI来更详细的管理插件模块,还未完成)。另外因为插件是运行在新AppDomain中的,所以卸载插件后可以立刻删除或更新对应dll,然后重新装载立刻应用。下载:http://code.google.com/p/premanager/downloads/list代码:http://code.google.com/p/premanag 阅读全文

Visual Studio中Silverlight设计器加载失败以及解决方案

2011-09-27 05:53 by Tsanie, 1045 阅读, 0 推荐, 收藏, 编辑
摘要:昨晚在我的本本上更新了Silverlight 5 RC,然后新建立一个sl项目,却发现设计器加载失败,如下图:在网上找了一通,应该是因为语言问题,我安装的VS2010是中文版,而安装的Silverlight5 Developer Runtime是英文版的,问题就处在这。解决方案:把现在系统中的Silverlight5 Developer Runtime卸载,然后安装中文版的比如Silverlight4 Developer Runtime症状解除(不过当然Silverlight5的项目没法创建了)。 阅读全文

FlvBugger 更新v1.2~(with source)(新增“前黑无傲娇进度条法”)

2011-01-02 07:39 by Tsanie, 5399 阅读, 3 推荐, 收藏, 编辑
摘要:软件功能根据指定码率后黑处理视频根据指定码率计算倍速处理视频、或根据指定倍速处理视频根据指定时长前黑(傲娇)处理视频、或根据指定码率计算傲娇时间处理视频编辑flv视频帧(限删除)修复后黑、前黑(傲娇)、倍速处理过的视频mp4、mkv视频自动封装flv(只是封装,不提供再编码)分割视频(更新内置播放器供预览视频)What's New (2010/12/31)增加了新的前黑bug方法,利用渣浪“纠错”机能来实现进度条不傲娇同时又不被二压的目的。在flv视频第一帧(通常是script帧记录视频的metadata)写入修改后的关键帧数据,这样大概可以让渣浪正确的截得视频截图(纯猜想,没有这个信 阅读全文

BiliBili 弹幕助手 更新v10.1c2~

2010-12-09 19:56 by Tsanie, 7874 阅读, 4 推荐, 收藏, 编辑
摘要:制作初衷只是为了方便、灵活的提交弹幕参数,比如可以在本地制作好时间轴,然后结合使用此软件填充弹幕内容即可(毕竟本地播放器可以逐帧播放等等更容易控制播放时间)。安全嘛。这是个严肃的问题。首先是账户cookie信息,用户可以有两种选择:1、不自动登录,此时cookie信息是存放在托管内存中不会泄漏的,安全性不用担心了;2、选择自动登录,这时cookie字符串会存储在本地配置文件中,用户需要保管好配置文件不被泄漏(嘛,其实浏览器cookie也是以明文方式存储在本地的,这时候只要微笑就可以了。)还有就是权限问题了,程序在每次登录的时候会向服务器索取权限信息,所以客户端权限是和服务器同步的。客户端权限限 阅读全文

Razor Syntax Highlighter~~用MVC3 Preview1的朋友们有福了

2010-08-17 15:27 by Tsanie, 968 阅读, 1 推荐, 收藏, 编辑
摘要:刚看到MVC3 Preview1的时候下载来使用了一下,对视图引擎相当感兴趣,不过可惜的是当时在VS2010中编辑Razor引擎的模板的时候没有语法提示,所以有好多人把cshtml的打开方式改为了HTML编辑器,无提示的环境下手敲代码总感觉不是那么一回事,不免是心中的小小遗憾。今天逛微软的VS库的时候发现了个叫做“Razor Syntax Highlighter”的东西,可... 阅读全文

一个用于多种数据库连接,并且可以反射出自定义类型对象的DBHelper

2010-08-11 17:48 by Tsanie, 922 阅读, 3 推荐, 收藏, 编辑
摘要:写这篇随笔的目的只是为了记录一下我在MVC架构下的数据处理思路的改变,由于我文采不好,写的难以忍受或者瞎眼的地方请多多见谅。另外我非常希望能够得到一个更严谨、完善的DBHelper,大家有什么批评指正的尽管提。之所以要实现DBHelper,目的就是帮助我们写Service的时候可以专注于业务实现而不用考虑琐碎的.Open()与.Close()以及那些for循环。为了提高代码的复用性,可以用以下思路来实现DBHelper:因为ADO.NET有一套统一的接口(IDbConnection、IDbCommand、IDbDataParameter、IDbDataAdapter等),所以我们可以用 阅读全文

tga 和 pcx 图片的缩略图扩展

2009-08-07 12:12 by Tsanie, 1428 阅读, 0 推荐, 收藏, 编辑
摘要:自从Vista以来,越来越习惯大图标的显示方式了,看不到tga和pcx的图片文件缩略图实在很不方便前两天看到篇文章 http://www.mvps.org/emorcillo/en/code/shell/shellextensions.shtml作者这提供的ShellExtension基类很好用,可以很方便的创建出自己想要的Explorer Shell Extension于是乎,拿来改装,做了个T... 阅读全文

.NET 的钩子组件……(封装起来使得你不用写代码即可完成钩子的设置)

2008-12-24 02:04 by Tsanie, 3394 阅读, 1 推荐, 收藏, 编辑
摘要:开发中我们很多时候会遇到使用钩子的情况。 用户按下了个按键,我怎么捕捉的到?好,如果焦点在自己的Form里的话,简单,重写ProcessDialogKey方法即可。。如果焦点在其他应用程序呢,Windows不会给我的Form发送按键消息,想捕捉这个按键就可以用钩子了。。。 同样,捕获鼠标也是如此。。不仅是键盘鼠标消息,挂上WH_GETMESSAGE钩子之后我们可以获得其他更多的消息。 前两天看... 阅读全文

可以显示多项式的Label组件……

2008-12-05 22:07 by Tsanie, 2255 阅读, 0 推荐, 收藏, 编辑
摘要:使用方法: 和Label组件一样用,自动解析Text中指数部分,并以上标显示出来。例如:3.2x^5+2x^3-1.2x^2+5.4x…… 效果图: 下面的显示部分的3个文本框…… 代码: 本来为了提高速度,用了个Bitmap _bmp;字段,文本更改的时候重新绘制到_bmp里,这样OnPaint()的时候就绘制这个图片就行了,后来发现绘制_bmp的时候里面的文字就变的十分丑陋了,TextRen... 阅读全文