2009.5.13
1.vlc 0.9.4的动态库写了一个播放器,主要参考了一篇博客,其中的内容还不是很清楚。
2.c#线程间通讯重要依靠委托,用另一线程所在实例的句柄,调用invoke方法。委托不是线程。
2009.5.14
1.问题:获取不同线程间,控件的handle,我在子线程中想要获取主线程中panel的handle提示“不是创建的线程 无法获取handle”,郁闷!!!
2009.5.19
dll 动态加载
[DllImport("libvlc")]
private static extern void libvlc_video_set_parent(CoreHandle coreHandle, IntPtr hDT, ref Exception ex);
2009.5.20
下午写了点Tcp通信的东西,没遇到大的问题,微软封装的东西就是太强大了,基本不用怎么考虑,到msdn一查就搞定了。
晚上再要看点书,充实充实。
2009.5.21
今天写了个控件拖拽的小例子,涉及到source control 和target control的事件
source: mource down调用dodraganddrop method
target: dragenter , dragdrop
CLR 垃圾收集 程序开始点(引用类型)为根 ,与之关联作为继续保持在托管堆的部分,其它的及根不能到达的为垃圾收集的部分。在托管堆满时执行垃圾收集,将把这部分内存清理掉。
2009.5.22
Timer对象使用。
Tick事件引发。
2009.6.1
ListBox datasource绑定后,修改你所帮定的数据源,然后重画控件即可改变显示的项目。
用foreach循环修改修换条件的项目,造成了错误,要小心。
2009.6.2
vs 查看dll 工具 depends.
多线程访问ui控件时,可以依此方式改变控件状态
public void SetControlInOtherThread(object args )
{
SendOrPostCallback doWork = delegate
{
//do work
};
SynchronizationContext.Current.Send(doWork, null);
}
2009.6.3
多多悟,不能死编程序了。要有灵活的思路。