02 2014 档案
让你的WPF程序使用多线程——BackgroundWorker
摘要:在wpf中可以使用许多方法执行异步操作。利用.NET的芳芳就是手动创建一个新的System.Threading.Thread对象,提供一步代码,并使用THread.Start()方法加载代码。这种方法很有用,因为Thread对象没有隐瞒任何内容。如果你愿意,可以创建几十个线程,设置他们的优先级,控制他们的状态(如暂停、恢复以及中止它们)等等。然而,这种方法也存在一些危险。如果访问了共享数据,需要使用锁定机制来避免潜在的错误。如果频繁创建线程或者大量创建线程,会产生额外的、不必要的开销。编写良好的多线程代码的技术——以及将要使用的.NET类——不是特定于WPF的。如果曾经在windows窗体应用
阅读全文
设置正确的post数据格式
摘要:之前一直使用苏飞的HttpHelper类来访问网络,用起来一直感觉很爽。使用其工具直接生成访问代码很是方便。直到昨天下午做到需要使用wpf来post两个字段数据到服务器,服务器使用ASP.NET MVC来接收表单数据时出现了问题。首先:按照正常使用习惯来生成的代码是:HttpHelper http = new HttpHelper();HttpItem item = new HttpItem(){ URL = "http://localhost:2250/api/login",//URL 必需项 Method = "post",//URL 可选项 默认为
阅读全文
InitializeComponent System.StackOverflowException
摘要:因为一直重复调用了InitializeComponent,WPF报System.StackOverflowException错误,提示死循环似的调用。经过一阵排查得出下面结论:避免在隐藏代码中使用ObjectDataProvider 来调用该类自己的方法小猪就是犯了这么个错误:在MenuData.xaml.cs里调用其静态方法来创建目录数据这样在MenuData类的初始化函数里就不能再加上InitializeComponent 函数了,加上就报循环调用了。不加上可以运行程序但是在关闭该程序后,后台进程却一直处于运行中,必须启用进程管理器强行结束进程,另外就是其他窗口调用其构造函数并显示时会显示
阅读全文
使用C#下载网络文件
摘要:下载/// /// 下载文件/// /// 下载文件地址/// 下载后另存为(全路径)private bool DownloadFile(string URL, string filename){ try { System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest) System.Net.HttpWebRequest.Create(URL); System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse) Myrq.GetResp...
阅读全文
WPF TreeView的使用
摘要:WPF提供了treeView控件,利用该控件开发者可以将数据分层显示在树结构中。当然其中需要用到Binding的机制,有用的类包括:ObjectDataProvider、DataTemplate、HierarchicalDataTemplate、ItemsSource等等。您可以用声明的方式解释 WPF 应如何通过分层数据模板呈现分层数据。利用 HierarchicalDataTemplate 类这一工具可以弥补复杂数据结构与该数据的直观表示之间的缺口。它与常用 DataTemplate 非常相似,但还允许您指定数据对象子项的来源。您还可以为 HierarchicalDataTemplate
阅读全文
使用Linq快速的操作XML
摘要:开始内容之前先分享一段话有时候,当你知道要做什么的时候就做的很快,比如你要实现个功能,码字的活儿不算很难,做个检索也不会有什么难倒你的。但是,做着做着,你发现好像世界上的工作都在重复,于是你有种心要飞起来的感觉,但总觉得脚步速度太慢,你开始抱怨进度,公司也对你充满期待,于是会给你配备助手,一来二去,你成为了小领导,你不再自己编码了,而且要做什么也都告诉你的助手们了,这时,你陷入了沉思,我该干什么呢?偶然的,你发现某些事情朝着错误的方向发展,用户开始抱怨了,你跳出来,指出助手们的错误,然后事情过去了,你却停不下来,你怕这样的事情再次发生,于是你开始更深的沉思,这次你学会了思考,我要做的就是保持优
阅读全文
C# 检测网络链接
摘要:private const long INTERNET_CONNECTION_MODEM = 1;//Local system uses a modem to connect to the Internet.private const long INTERNET_CONNECTION_LAN = 2; //Local system uses a local area network to connect to the Internet.private const long INTERNET_CONNECTION_PROXY = 4;//Local system uses a proxy ser
阅读全文
再也不相信”红米”了
摘要:尼玛的,作为一个电信吊死档真心不容易,一如电信深似海,从此好手机如路人啊,凡是新出来的或者关注度比较高的小猪不需要卖肾能买的都不支持CDMA制势啊。之前的Nexus5、小猪关注好久结果不能用。另外一方面自己却舍不得这个号码。换号码很麻烦的说。好不容易等到红米电信版出来了。结果又搞了什么抢码。那玩意都是毫秒级的抢法。小猪只是点了一下就得知抢光了~~~像什么魅族MX3之类的压根就没有电信版、然后想跟小米争风头的华为荣耀3C也没电信版的。如果华为出电信的小猪会毫不犹豫的去抢啊。毕竟华为的品质小猪还是有底的啊!!可怜小猪想买手机的欲望一点一点的被这些奸商给磨灭。最后就让我的lumia 822陪我度余生
阅读全文
ASP.NET MVC统一异常处理
摘要:前言:今早看了篇文章:求知成瘾,却无作品 的思考;很有感触,发现原来自己也是这样,对每样东西都抱有很大的兴趣或者希望自己去学,一年后发现原来自己什么都是皮毛什么都不精!最终发现真正的大牛都是在某一个领域的大牛,不会是全能的。所以是时候精一下了。本篇文章来源于今天的另外一篇阅读:《我的软件没bug》作者希望读者写的程序即使已经上线也能快速的发现自己bug而不是等着用户忍无可忍时的反馈,这样让用户产生错觉是其用的软件并没有bug,而能实现这些最关键的一点就是能不能发现bug。所以小猪今天写了其实已经关注非常久的一个主题:统一的异常处理实现ASP.NET MVC提供了很方便的实现处理异常的机制:在需
阅读全文
强大的Resharp插件
摘要:使用VS有段时间了,一直深深的折服于其强大的功能。之前一直听说有Resharp这个工具,小猪一直也没有太在意。直到今天……下载安装:http://www.jetbrains.com/resharper/download/http://www.ttrjba.com/index.php/resharper7-1-1000-900/resharper安装后,会做几件事情,这几件事情对于除此使用者,比较麻烦,因此归纳总结一下,以资参考。(1)、会将选项——文本编辑器——C#——常规——自动列出成员 这个选择框的勾选去掉。这样当你使用某个方法的时候,便不会提示参数,是一个很郁闷的事情。可以手动勾上。(2
阅读全文
编写自己的Windows Live Writer插件
摘要:起因自从小猪使用Windows Live Writer(wlw)来写博客之后就很少打开网站的后台编辑器了,这真是个写博客的好东西啊,但是任何东西都是不完美的。索契冬奥会开幕式都会把五环弄成四环呢!对于写博一个很简单的情景:小猪需要从别的网站上面引用一段话,我希望引用的这端话有独立的标签好定义其样式,就这么个简单的需求在原生的wlw里面却束手无策了。好在现在的软件都强调对其自身的拓展,wlw也不例外。准备其实需求很简单,就是希望能有那么个按钮,这个按钮的功能是给我的文字加上一段固定的标签就可以了。参考很多的代码高亮插件之后发现这个完全是可行的,而且相比于代码高亮来说实在是再简单不过了——我不需要
阅读全文
找到的程序集清单定义与程序集引用不匹配
摘要:“/”应用程序中的服务器错误。未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)说明:执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.IO.FileLoadException: 未能加载文件或程序集“Newtonsoft.Json, Version=
阅读全文
GUID
摘要:前言全局唯一标识符,简称GUID(发音为 /ˈɡuːɪd/或/ˈɡwɪd/),是一种由算法生成的唯一标识,通常表示成32个16进制数字(0-9,A-F)组成的字符串,如:{21EC2020-3AEA-1069-A2DD-08002B30309D},它实质上是一个128位长的二进制整数。GUID一词有时也专指微软对UUID标准的实现。(摘自:维基百科)GUID的主要目的是产生完全唯一的数字。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID的总数也足够大,达到了2128(3.4×1038)个,所以随机生成两个相同GUID的可能性是非常小的,但并不为0。所以,用于
阅读全文