- 博客(6)
- 收藏
- 关注
原创 DirectShow (4)
6 Time and Clocks in DirectShow 6.1 Reference Clocks 参考时钟是Filter Graph Manager用来同步所有Filter的。任何一个暴露了IReferenceClock 接口的对象都可以作为参考时钟。参考时钟可以是Filter提供,例如声卡就可以提供一个硬件的时钟。作为应变,Filte
2009-12-30 12:41:00
348
原创 DirectShow (3)
Filter有三种状态,停止,暂停,运行。暂停状态是为了在Graph中Cue Data, 使得运行命令可以立即响应。Filter Graph Manager控制着所有状态的转换。当应用程序调用IMediaControl的Run, Pause, Stop方法时, Filter Graph Manager就调用所有Filter的相应IMediaFilter方法。停止,运行状态的切换总是要经过暂停,因此
2009-12-30 12:39:00
372
原创 帕卡贝尔的D大调卡农之由来
卡农(CANON)的由来 《D大调卡农》在问世之后,被创作出无数个版本,用各种各样的方式去演奏或吟唱,它曾让无数人为之着迷,无论您是否了解古典音乐都一样。而这首作品的故事也颇为让人唏嘘不已。D大调卡农的来历 Pachelbel(卡农的作者),德国人。在他10几岁的时候,战乱使他沦为孤儿。流浪到英国的他被英国一个小村庄的天天在教堂弹琴的琴师收养,之后他天天听那个他弹
2009-12-21 18:13:00
969
原创 解决"从不是创建控件的线程访问它"
在默认情况下,C#不准许在一个线程中直接访问或操作另一线程中创建的控件,这是因为访问windows窗体控件本质上是不安全的。 大家知道线程之间是可以同时运行的,那么如果有两个或多个线程同时操作某一控件的某状态,则极有可能使该控件的某受控制的状态进入一种无所适从的境地。那么如何解决这个突显的矛盾呢? 这里我推荐的是使用代理。 为了区别是否是创建该控件的线程访
2009-12-02 17:22:00
609
原创 经典c/c++算法
二分查找的代码.int bfind(int* a,int len,int val){ int m = len/2; int l = 0; int r = len; while(l!=m && r!= m) { if(a[m] > val) { r = m;
2009-11-30 18:29:00
317
原创 C#多线程学习(三) 生产者和消费者
前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,关键字lock定义如下
2009-11-30 09:52:00
267
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人