随笔分类 -  .Net

摘要:这个问题是由于访问控制引起的,解决的方法有两个:用Run as administrator来启动VisualStudio或者Service;用net http命令来授权:netsh http add urlacl url=http://+:8000/ user=DOMAIN\UserName详细解释可以参照这里。 阅读全文
posted @ 2013-09-03 09:48 夜深沉 阅读(271) 评论(0) 推荐(0)
摘要:DLR(Dynamic Language Runtime)基本概念还是比较直观的。一般情况下,如果你传递了一个.NET object给DLR,DLR会通过反射来调用相关的成员。 obj.Property会被DLR自动映射到对象的Property属性,obj.Method()会被DLR自动映射到对象的Method方法。如果对象实现了IDynamicMetaObjectProvider接口,事情会稍稍... 阅读全文
posted @ 2012-11-23 12:53 夜深沉 阅读(233) 评论(0) 推荐(0)
摘要:SynchronizationContext在Windows多线程编程中是一个很重要的概念。因为Window要求对UI的更新都应该在主线程(同时也是UI线程)中更新。换句话说,我们应该要将所有的UI操作都传递回主线程。SynchronizationContext就是用来帮助我们进行UI线程同步的工具。 有意思的是,Console,WinForm和WPF对于SynchronizationContext的处理有些细微的差别。 Console程序中没有SynchronizationContext的概念。这也很好理解。因为Console没有UI控件,所以也不需要Synchronization... 阅读全文
posted @ 2012-11-15 21:32 夜深沉 阅读(644) 评论(0) 推荐(1)
摘要:!dumpheap stat新加入了两个参数:-live和–dead,用来区别显示可以被GC的和Rooted的内存。详细情况参看这里。 阅读全文
posted @ 2012-03-09 13:20 夜深沉 阅读(277) 评论(0) 推荐(0)
摘要:最简单的方式:var performanceCounter = new PerformanceCounter("Process", "Creating Process ID", "Child Process Name");不过这种方式有个很严重的问题就是效率。在我的测试机上,创建PerformanceCounter的时间超过了1.5秒。如果效率对你很重要的话,你可以考虑PInvoke方式。static Process GetParentProcess(Process childProcess){ IntPtr toolhelp32SnapshotHandle = WindowsSdk.Crea 阅读全文
posted @ 2010-12-07 11:09 夜深沉 阅读(383) 评论(0) 推荐(0)
摘要:在.NET中创建一个进程是一件相当容易的事情。但是要是想创建以后后台进程(没有任何窗口),需要一些额外的设置:var process = new Process() { StartInfo = new ProcessStartInfo("executable file name", "arguments") { CreateNoWindow = true, UseShellExecute = fa... 阅读全文
posted @ 2010-11-22 12:14 夜深沉 阅读(2522) 评论(0) 推荐(0)
摘要:解决了mp3文件ID3的乱码问题之后呢,我心里还是挺美的。不过……(天下事就怕这“不过”二字啊!)我听cue+ape(flac)文件的时候还是有乱码。谁叫我是一个挑剔的人呢。继续想办法吧…… 当我随手打开cue文件之后,发现这种文件就是一个plain text文件。嗯,这样子问题就好办了。它就转变成了如何把GBK编码的文件转换... 阅读全文
posted @ 2010-11-16 08:55 夜深沉 阅读(250) 评论(0) 推荐(0)
摘要:我这个人吧,是一个伪文艺青年,喜欢coding的时候听些流行小曲啥的。不幸的是,我现在正给洋大爷打工,公司的电脑必需是英文的操作系统。我听小曲的听得比较high的时候,想看看这曲叫啥名字啊,总是看到了一堆乱码,于是我就不high了。 最早我用AppLocale来启动千千静听来解决这个问题。这次乱码是没有了,不过每次启动千千静听的时候还是要多点一次鼠标来关闭AppLocale的对话框。于是我还是不h... 阅读全文
posted @ 2010-11-16 08:53 夜深沉 阅读(208) 评论(0) 推荐(0)
摘要:当你发布你自己的assembly给第3方时,你是否打算在VisualStudio中提供Intellisense?如果答案是肯定的话,这里有一个简单的向导:在你自己的代码中加入XML文档。GhostDoc可以很好的帮助你完成这项工作。更改你的项目属性设置:Build->output->XML Documentation file。如果你使用命令行来编译程序,/doc参数是必须的。一旦你完... 阅读全文
posted @ 2010-10-25 12:19 夜深沉 阅读(389) 评论(0) 推荐(0)
摘要:在我尝试写一个小的Performance Meter的时候,我使用Process(System.Diagnostics.Process)类来得到执行时间,CPU利用率和内存使用效率等runtime信息。 但是特别奇怪的是:所有和内存相关的属性(例如:WorkingSet64和VirtualMemorySize64)从来都不变化。但是和CPU相关的属性(例如:TotalProcessorTime)就... 阅读全文
posted @ 2010-10-25 12:12 夜深沉 阅读(188) 评论(0) 推荐(0)
摘要:我发现我实现的一个UserControl 的背景色有些奇怪的行为。当他被创建的时候,他的背景色是SystemColors.Control。 但是一旦他被resize,他的背景色就变成了Color.White。En……,到底是谁在搞鬼?起初,我override BackColor的setter并且在setter中设置了一个断点。但是当背景色变化时什么也没有发生。:(我意识到除... 阅读全文
posted @ 2010-10-25 12:07 夜深沉 阅读(418) 评论(0) 推荐(0)
摘要:在.Net中,创建一个进程十分容易。但是如果你想创建一个没有窗口的后台进程,你需要对ProcessStartInfo进行一些特殊的设置:var process = new Process() { StartInfo = new ProcessStartInfo("executable file name", "arguments") { CreateNoWindow = true, UseShel... 阅读全文
posted @ 2010-01-28 16:40 夜深沉 阅读(539) 评论(0) 推荐(0)
摘要:一个简单的方法:var performanceCounter = new PerformanceCounter("Process", "Creating Process ID", "Child Process Name");return Process.GetProcessById((int)performanceCounter.NextValue());这个方法哪里都好,就是效率不好。创建Per... 阅读全文
posted @ 2010-01-27 17:56 夜深沉 阅读(1261) 评论(0) 推荐(0)