![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
文章平均质量分 81
然鸟
这个作者很懒,什么都没留下…
展开
-
浅谈C#插件式程序的开发(一)
近日,在金旭亮老师的指导下学习用C#开发插件式程序,对插件式程序开发有了一定得心得体会!欲与众码农共享! 什么是插件式程序开发? 插件的本质在于不修改程序主体(平台)的情况下对软件功能进行扩展与加强,当插件的接口公开后,任何公司或个人都可以制作自己的插件来解决一些操作上的不便或增加新的功能,也就是实现真正意义上的“即原创 2012-04-10 20:32:04 · 7778 阅读 · 0 评论 -
c#插件式程序开发(二):如何在插件中调用主程序资源
在编写窗体应用的插件程序开发时,如果主程序是窗体程序,如何在插件中调用主程序的窗体中的各种资源了,这是我采用的方法,请各位码农指点: 首先定义插件接口 public interface IAdvancedPlugin { Form MainForm //这是关键,通过在主程序的装载插件方法给该窗体的引用赋值,即将主程序窗体的引用赋给插件程序中对应的字段原创 2012-04-10 21:04:37 · 3335 阅读 · 2 评论 -
[C#学习笔记之异步编程模式2]BeginInvoke和EndInvoke方法
为什么要进行异步回调?众所周知,普通方法运行,是单线程的,如果中途有大型操作(如:读取大文件,大批量操作数据库,网络传输等),都会导致方法阻塞,表现在界面上就是,程序卡或者死掉,界面元素不动了,不响应了。异步方法很好的解决了这些问题,异步执行某个方法,程序立即开辟一个新线程去运行你的方法,主线程包括界面就不会死掉了。异步调用并不是要减少线程的开销, 它的主要目的是让调用方法的主线程不需要同步等原创 2012-05-20 14:36:40 · 7861 阅读 · 4 评论 -
C#解决MDI窗体闪屏的方法
最近从师兄手上接了一个C#的项目,需要用到MDI窗体,可是每当我显示子窗体的时候会有一次“闪烁”,很明显,看起来非常不爽,查找许久,知道是每次在show()子窗体的时候都会调用子窗体构造函数重绘窗体,其中需要将子窗体的尺寸调整到我在程序中设置的大小,无论我这样设置,这个窗口大小变化总会在show()的时候显示出来,我试过网上说的设置双缓冲、先隐藏窗体等启动之后再显示、借助定时器设置窗体的opaci原创 2012-06-14 20:18:40 · 7959 阅读 · 10 评论 -
如何在C#中读写注册表
注册表是视窗系统的一个核心的数据库,在这个数据库中存放中与系统相关的各种参数,这些参数直接控制中系统的启动、硬件的驱动程序安装信息以及在视窗系统上运行的各种应用程序的注册信息等。这就意味着,如果注册表因为某些原因受到了破坏,轻者是视窗系统启动过程出现异常,重者就有可能导致整个系统的完全瘫痪。所以正确的认识注册表,及时的备份注册表,对于视窗用户就显得相当重要。 C#就可以十分方便、简洁原创 2012-04-23 10:44:49 · 2263 阅读 · 0 评论 -
[C#学习笔记之多线程1]使用ParameterizedThreadStart委托向线程函数传送参数
在不传递参数情况下,一般大家都使用ThreadStart代理来连接执行函数,ThreadStart委托接收的函数不能有参数,也不能有返回值。如果希望传递参数给执行函数,则可以使用带参数的ParameterizedThreadStart委托, public delegate void ParameterizedThreadStart(Object obj)可以将要传送给原创 2012-05-21 12:32:23 · 11704 阅读 · 2 评论 -
[C#学习笔记之异步编程模式1]了解同步与异步
同步执行程序执行的流程是按照语句顺序执行,一句执行完再执行下一句,如果遇到函数调用,要等到函数调用返回以后才会执行下一句——这就是“程序的同步执行模式”。例 1:using System.Threading;using System;public class SynchroPattern{ public delegate int NewTaskDelegate(in原创 2012-05-20 11:09:53 · 1974 阅读 · 2 评论 -
[C#学习笔记之异步编程模式3]异步下载web网页
这是对上篇博文提到的IAsyncResult异步调用模式的一个实例应用,所用到的知识有:通过异步回调函数实现异步操作通过类实现给异步回调函数传递附加信息在子线程中通过异步回调的方式通知主线程执行结果WebRequest和WebResponse的操作using System;using System.Collections.Generic;using System.Linq;原创 2012-05-21 08:26:51 · 1916 阅读 · 0 评论 -
C#内存映射文件学习
内存映射文件是由一个文件到进程地址空间的映射。 C#提供了允许应用程序把文件映射到一个进程的函(MemoryMappedFile.CreateOrOpen)。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,只是内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而非系统的页文件,而且在对该文件进行操作之前必须首先对文件原创 2012-05-17 17:10:35 · 7574 阅读 · 1 评论 -
C#将Excel数据表导入SQL数据库的两种方法
方式一:实现在c#中可高效的将excel数据导入到sqlserver数据库中,很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,最好的办法是使用bcp,也就是System.Data.SqlClient.SqlBulkCopy 类来实现。using System;using System.Collections.Generic;using System.Componen原创 2012-06-05 12:09:51 · 7011 阅读 · 4 评论 -
[C#学习笔记之多线程2]多线程同步与并发访问共享资源工具—Lock、Monitor、Mutex、Semaphore
“线程同步”的含义 当一个进程启动了多个线程时,如果需要控制这些线程的推进顺序(比如A线程必须等待B和C线程执行完毕之后才能继续执行),则称这些线程需要进行“线程同步(thread synchronization)”。 线程同步的道理虽然简单,但却是给多线程开发带来复杂性的根源之一。当线程同步不好时,有可能会出现一种特殊的情形——死锁(Dead Lock原创 2012-05-31 23:05:20 · 10332 阅读 · 3 评论 -
使用剪贴板保存自定义对象
技术要点:放置到剪贴板上的对象必须是可序列化的。剪贴板接收一个实现了IDataObject接口的对象,可以用此对象“包装”具体的数据对象。可以多次调用IDataObject. SetData方法将多种类型的对象复制到剪贴板中。在获取剪贴板中的数据时通过DataFormat进行识别在进行粘贴之前,需要确保剪贴板上的数据是所需要的格式。using Sys原创 2012-05-14 12:00:24 · 1853 阅读 · 0 评论 -
如何在C#中读写INI文件
INI文件就是扩展名为“ini”的文件。在Windows系统中,INI文件是很多,最重要的就是“System.ini”、“System32.ini”和“Win.ini”。该文件主要存放用户所做的选择以及系统的各种参数。用户可以通过修改INI文件,来改变应用程序和系统的很多配置。但自从Windows 95的退出,在Windows系统中引入了注册表的概念,INI文件在Windows系统的地位就原创 2012-04-23 10:18:28 · 747 阅读 · 0 评论 -
WCF能干什么?
很久以前,有一家小商店,靠卖些水果过日子。竞争是如此激烈,为了生存,他们不得不自己进货,把货堆到自己的房间内,如果顾客需要,他们有时还不得不给顾客送货,总而言之,他们将所有该干的活都干了,只为了能赚到点生活费,这就是艰辛的人生。一个web程序或者一个winform程序,简单模式的程序,我们通常都如那个水果店的老板一样,把所有的功能都集中到这个程序里,在简单的状况下,这很好。水果店生转载 2012-04-21 10:57:13 · 988 阅读 · 0 评论 -
如何查找本机IP及MAC地址
获得本机ip地址及mac地址的两种方法,见代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Management;using System.Net;using System.IO;namespace test{ pu原创 2012-04-22 14:31:10 · 1769 阅读 · 0 评论