摘要:
别人传给我了一个winform程序的demo,用vs2005打开后,报“路径的形式不合法。“,甚是疑惑,找了好久,找到了两个解决方法 1) 按f7打开窗体的后台文件,在空白处按回车,关闭所有文件,再重新打开窗体设计器就可以了。2)打开demo所在的文件夹,删除其下所有的*.pdb文件(调试符号数据库文件)。再重新打开demo就可以了。 作者:张荣华 出处:http://zh... 阅读全文
摘要:
项“obj\Debug\MyWork.FrmMain.resources”在“Resources”参数中指定了多次。“Resources”参数不支持重复项。用记事本打开 MyWork.csproj找到类似如下的字节段 EmbeddedResource 查看是否重复指向FrmMain,如果有,删除一项 阅读全文
摘要:
VS2008、C#3.0在WinForm开发中,我们通常不希望当窗体上点了某个按钮执行某个业务的时候,窗体就被卡死了,直到该业务执行完毕后才缓过来。一个最直接的方法便是使用多线程。多线程编程的方式在WinForm开发中必不可少。本文介绍在WinForm开发中如何使用多线程,以及在线程中如何通过Control.Invoke方法返回窗体主线程执行相关操作。-. WinForm多线程编程1. new T... 阅读全文
摘要:
首先,我也是经历了“认为回调函数比事件模型好”,“认为事件模型比回调函数好”,这两个阶段都走过才来说这样的话的。其实“回调函数”和“事件模型”可以作为架构方式的两个标志。这里,我就单单说说它们的优缺点吧。回调函数优点:1.没有内存泄漏问题2.书写简单,一个方法的回调函数数量和意义是固定的,不需要刻意查找需要的回调函数名称3.你无法对同一个内容加上两个回调函数,可以避免重复添加的问题4.回调函数的参数列表比较灵活,可以直接写,而且是固定的,写错了执行时会报错,方便排错5.回调函数以及它的参数是固定的,多了少了都不行,如果对方和你不同可以马上知道,方便协作。缺点1.回调函数不能保持引用,可能函数还 阅读全文
摘要:
using System;using System.Collections.Generic;using System.Text;using System.Runtime.InteropServices;namespace MyDelegate{ #region 委托实现回调函数 public delegate bool CallBack(int hwnd, int lParam); public ... 阅读全文
摘要:
一、基本步骤:1、创建一个方法作为线程的入口点;2、创建一个threadstart 或parameterizedthreadstart 委托,并把上一步定义方法的地址传给委托的构造函数;3、创建一个thread对象,把threadstart 或parameterizedthreadstart 委托作为构造函数的参数;4、创建任意初始化线程的特性(名称、优先级),5、调用thread.start方法... 阅读全文
摘要:
// Need this for the Thread.Sleep() call.using System.Threading;using System;namespace SyncDelegate{ public delegate int BinaryOp(int x, int y); class Program { static void Main(string[] args) { Conso... 阅读全文
摘要:
using System.Threading;using System;using System.Runtime.Remoting.Messaging; //不要忘记该引用,AsyncResult(异布调用的结果)namespace SyncDelegate{ public delegate int BinaryOp(int x, int y); class Program { static vo... 阅读全文