09 2017 档案

摘要:在上一篇文章 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 中我们发现 Dispatcher.Invoke 方法内部是靠 Dispatcher.PushFrame 来确保“不阻塞地等待”的。然而它是怎么做到... 阅读全文
posted @ 2017-09-26 12:26 walterlv 阅读(781) 评论(0) 推荐(0) 编辑
摘要:深耕 WPF 开发的各位程序员大大们一定避不开使用 Dispatcher。跨线程访问 UI 当然免不了用到它,将某个任务延迟到当前任务之后执行也会用到它。Dispatcher.Invoke、Dispatcher.BeginInvoke 是过去大家经常使用的方... 阅读全文
posted @ 2017-09-26 12:21 walterlv 阅读(1448) 评论(0) 推荐(0) 编辑
摘要:在开发 markdown-mail 时遇到了一些诡异的情况。代码是这么写的:然而在 TextChanged 事件之后延时执行了一些操作时,从 ViewModel 里拿到的值却始终是旧的。阅读本文将了解其原因和解决办法。无论是 WPF 还是 UWP,Bindi... 阅读全文
posted @ 2017-09-25 01:24 walterlv 阅读(616) 评论(0) 推荐(0) 编辑
摘要:古老的 Win32 应用启动其他程序太过方便,以至于一部分开发者都已经不记得 Windows 能通过关联协议的方式通过统一资源定位符(URI)来启动应用程序了。转到 UWP 后,使用 URI 启动应用似乎成为了最推荐的方式。于是一句 LaunchUriAsy... 阅读全文
posted @ 2017-09-25 00:45 walterlv 阅读(450) 评论(0) 推荐(0) 编辑
摘要:跟图片打交道的 UWP 应用或多或少都会遇到图片带来的性能问题,就算不主要处理图片,做个论坛做个新闻客户端都涉及到大量图片。一个帖子、一篇文章里多半都是些高清大图,这些图片一张即可占用程序 1~2M 的内存空间。普通的写法内存很快就爆了,那么 UWP 中我们... 阅读全文
posted @ 2017-09-23 00:04 walterlv 阅读(304) 评论(0) 推荐(0) 编辑
摘要:当我们编译程序目标框架选为 .Net Framework 4.5/4.6/4.7 时,CLR 运行时是如何判断我们究竟应该用哪一个 .Net Framework 呢?.Net Framework 的版本到底由哪些部分组成?我们编译 .Net Framewor... 阅读全文
posted @ 2017-09-22 21:50 walterlv 阅读(874) 评论(1) 推荐(0) 编辑
摘要:微软在 Reference Source 里开放了 .Net Framework 多个版本的源码。为了更方便地阅读这些源码,我们把每一个版本都下载下来后按顺序提交到 git 仓库中。但是!!!居然忘了在第一次提交之前放一个 .gitignore 文件!如果没... 阅读全文
posted @ 2017-09-14 23:57 walterlv 阅读(641) 评论(0) 推荐(0) 编辑
摘要:不管在 32 位 Windows 上还是在 64 位 Windows 上,32 位的应用程序都只能使用最大 2GB 的内存,这是我们司空见惯的一个设定。但其实 Windows 提供了一些方法让我们打破这样的设定,使程序使用大于 2GB 的内存。阅读本文,你将... 阅读全文
posted @ 2017-09-14 23:55 walterlv 阅读(2164) 评论(0) 推荐(0) 编辑
摘要:我们抛出异常是为了知道程序中目前的状态发生了错误。为了能够知道错误的详细信息便于我们将来避免产生这样的错误,我们会选用合适的异常类型,在异常中编写易于理解的 message 信息。但是有时我们需要更多的信息进行调试才能帮忙在将来避免这个异常。System.E... 阅读全文
posted @ 2017-09-14 23:53 walterlv 阅读(341) 评论(0) 推荐(0) 编辑
摘要:WPF 自诞生以来就带着微软先生的傲慢。微软说 WPF 支持触摸,于是 WPF 就真的支持触摸了。对,我说的是“支持触摸”,那种摸上去能点能动的;偶尔还能带点儿多指的炫酷效果。但是,WPF 推出那会儿,绝大部分开发者都还没有触摸屏呢,开发个程序要怎么验证支不... 阅读全文
posted @ 2017-09-14 23:52 walterlv 阅读(1036) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示