文章列表
 
您正在查看 "c#" 分类下的文章

2011年11月12日 星期六 19:06

九、同步事件和等待句柄

  用lock和Monitor可以很好地起到线程同步的作用,但它们无法实现线程之间传递事件。如果要实现线程同步的同时,线程之间还要有交互,就要用到同步事件。同步事件是有两个状态(终止和非终止)的对象,它可以用来激活和挂起线程。

  同步事件有两种:AutoResetEvent 和 ManualResetEvent 。它们之间唯一不同的地方就是在激活线程之后,状态是否自动由终止变为非终止。AutoResetEvent自动变为非终止,就是说一个 AutoResetEvent只能激活

 
2011年10月22日 星期六 14:22
判断是否包含子串

想要判断一个字符串中是否包含某个子串,可以用Contains方法来实现:

Ø public bool Contains (string value)

参数value为待判定的子串。如果包含,返回true;否则返回false。下面的代码判断“Hello”中是否包含两个子串。

1.      bool b1 = strA.Contains("ll");                    //tru

 
2011年05月04日 星期三 14:37

 

封装:

(1) 在工程属性application属性中设置output type 为class library(这个属性有三种类型)。

(2)下面说一下类怎么封装:

C#中类的声明默认是internal,也就是项目内共有,别的项目是访问不了的,因此呢,如果需要把这个类暴露出去必须声明为public;

这样的类在生成dll文件后,在别的工程中添加reference的时候,使用对象查看器就可以看到这个类,否则是看不到的。

 

(3)接下来就是类的成员函数了的属性设置了,经过实验,只有类的公有函数生成dll之后,在别

 
2011年05月04日 星期三 14:03
这个要看类的位置,


如果类,结构,代理,枚举是外置的,那修饰符只有:public 和 internal,默认是internal。
至于private和protected是用来修饰类的成员。
在外置class前面加private,protected根本不会通过编译,不信你试试?


如果是内置的,就是作为另一个类型的成员,也称内部类型(inner type),这样的话,修饰符可以是全部可用修饰符,默认是private。

举例:
class a {}  类a是internal

class b
{
   class a {}  类a是private
}
 
2011年05月03日 星期二 12:50

 

程序写的非常不错,可以参考!下载地址为:

http://www.codeproject.com/KB/directx/directshowmediaplayer.aspx

 
2011年05月03日 星期二 12:48

要使 C# 代码引用 COM 对象和接口,需要在 C# 内部版本中包含 COM 接口的 .NET 框架定义。完成此操作的最简单方法是使用 TlbImp.exe(类型库导入程序),它是一个包括在 .NET 框架 SDK 中的命令行工具。TlbImp 将 COM 类型库转换为 .NET 框架元数据,从而有效地创建一个可以从任何托管语言调用的托管包装。用 TlbImp 创建的 .NET 框架元数据可以通过 /R 编译器选项包括在 C# 内部版本中。如果使用 Visual Studio 开发环境,则只需添加对 COM 类型库的引用,将为您自动完成此转换。
例如,我们要播放当前目录下的demo.avi文件

 
2011年05月02日 星期一 20:15
    C# Timer类作为我们编程中的常用类,我们会遇到的C# Timer用法有哪些呢?具体的C# Timer使用过程是什么呢?那么本文就向你介绍具体的内容。

    C# Timer用法有哪些呢?我们在使用C# Timer时都会有自己的一些总结,那么这里向你介绍3种方法,希望对你了解和学习C# Timer使用的方法有所帮助。

    关于C# Timer类  在C#里关于定时器类就有3个

    C# Timer使用的方法1.定义在System.Windows.Forms里

    C# Timer使用的方法2.定义在System.Th

 
2011年05月02日 星期一 19:04

首先,如何修改TrackBar的刻度,其次,如何设置它不以刻度作为移动单位。主要程序就是设置角度,开始角度为30度,结束角度为60度,每0.5度作为一个移动单位,最好在旁边设置一个Lable能够看到当前角度。

修改刻度有一个Value属性int类型
this.trackBar1.Value = 5;(1-10)
private void Form1_Load(object sender, EventArgs e)
        {
            this.trackBar1.Size = new Size(273, 45);
           //把trackBar1的Value最大值更改成60
            trackBar1.Maximum = 60;
     
 
2011年04月22日 星期五 14:08

 
2011年04月21日 星期四 16:25

摘  要:在《csdn开发高手》2004年第03期中的《化功大法——将DLL嵌入EXE》一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资源中释放出来,通过静态加载延迟实现DLL函数的动态加载,程序退出后实现临时文件的自动删除,从而为解决“DLL Hell”提供了一种解决方案。这是一个很好的设计思想,而且该作者也用C++实现了,在Internet上也有相似的VB程序,但在某一技术论坛上提起这种设计方法时,有网友提出:“这种方法好是好,但就是启动速度太慢”。这是因为程序启动时实现DLL

 
2011年04月21日 星期四 15:59

If you want compile the unsafe code in VS, you should set the project's properties(you can see the properties when you right click the project). Enable the 'Allow unsafe code' selection under 'Build' tab.

 
2011年04月20日 星期三 16:09

VS2005中很多工程都可以生成DLL,例如atl,mfc,win32等等。选择Win32,步骤如下:
1:新建项目TestDLL,选择win32中的win32控制台应用程序,在“应用程序设置”中,选择“应用程序类型”为DLL,并将下方的附加选项勾上“空项目”,就可以了。 

2:添加一个C++类,这时vs2005会生成TestDLL.h和TestDLL.cpp的文件,在.h文件中,键入如下代码:
#define LIBEXPORT_API extern "C" __declspec(dllexport) 
LIBEXPORT_API int f( char * ch);//这是一个测试程序 

3:然后在.cpp文件中,必

 
2011年04月03日 星期日 15:39

  我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一大堆数据,但还要使用户界面处于可操作状态;或者你的程序需要访问一些外部资源如数据库或网络文件等。这些情况你都可以创建一个子线程去处理,然而,多线程不可避免地会带来一个问题,就是线程同步的问题。如果这个问题处理不好,我们就会得到一些非预期的结果。

  在网上也看过一些关于线程同步的文章,其实线程同步有好几种方法,下面我就简单的做一下归纳。

  一、volatil

 
 
   
 
 
文章分类
 
   
 
文章存档
 
     
 
最新文章评论
  

要是能再详细一点就好了,比如人脸的库是按什么具体的标准建立起来的就好了,因为我
 

很好
 

你好!我在命令行中输入xvid_encraw.exe -i foreman_cif.yuv -w 352 -h 288 -framera
 

回复瞿培华:嗯,是的
 

原来是这样啊
   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu