08 2012 档案

摘要:在WPF中,专门有HierarchicalDataTemplate用于自定义显示TreeView和ListBox的层次结构,结合后台定义的数据,得以实现五花八门的外观。我现在先简要说明一下HierarchicalDataTemplate的使用方式:1 public class DataItem2 {3 public string Header { get; set; }4 public IList<DataItem> Childs { get; set; }5 } 上面是树的一个结点类,包括了一个Header字段和子结点列表,下面则是对应的前台代码:<Grid> ... 阅读全文
posted @ 2012-08-28 16:03 Lekko.Li 阅读(2770) 评论(5) 推荐(2)
摘要:判断Socket是否连接上,需要通过发包来确认: 1 // 检查一个Socket是否可连接 2 private bool IsSocketConnected(Socket client) 3 { 4 bool blockingState = client.Blocking; 5 try 6 { 7 byte[] tmp = new byte[1]; 8 client.Blocking = false; 9 ... 阅读全文
posted @ 2012-08-02 00:05 Lekko.Li 阅读(14611) 评论(3) 推荐(0)
摘要:这几天都有事,一直没更新博客,有个内容我早就想好了,可是也没空来写。 在WPF中,我们经常要用到BeginInvoke、Invoke来更新前台界面,实际上都是Post一个Message给了UI线程,然后由UI线程来操作界面更新,只不过BeginInvoke是无阻塞异步式的Post,而Invoke是在Post后使用WaitHandle来阻塞了当前线程直到UI线程处理Message后才返回。 现在我遇到的问题是使用委托的BeginInvoke方法来执行多线程的操作时,其返回值是乱序的。一般而言,乱序是很正常的,因为它本身是个异步方法,调用、返回顺序本身就是随机的,可是在一些情况下,这会存在... 阅读全文
posted @ 2012-08-01 14:12 Lekko.Li 阅读(3468) 评论(2) 推荐(1)