c# 问题杂记
2010-04-20 22:46
211 查看
最近在使用c#时,遇到些问题,记录下来以后查看
1.workthread没有消息传递机制,所有在workthread中不能new form等需要消息循环的窗口。
2.写程序时遇到:在创建窗口句柄之前,不能在控件上调用 Invoke或begininvoke,查看代码是,new 了一个form,然后调用一线程,在线程中通过form.invoke来调用form控件,应该是没问题的,因为已经new form了,感觉应该有窗口句柄了,但是却报了以上错误。经查资料以及网上搜索,发现:new form后,窗口句柄并没有生成,只是在内存中有个form对象,只有当窗口真正显示出来时,窗口句柄才生成。所以,当new form后,还需form.show()之后,才真正生成窗口句柄。
3.form窗口消息传递:wndproc(窗口处理函数)-》onclick(引发click事件)——》form_click()事件。其中wndproc和on***都可以重载。
4.常用delegate代码:
Thread thread1 = new Thread(new ThreadStart(delegate()
{
}));
controls.BeginInvoke(new MethodInvoker(delegate()
{
}));
5.调用delegate:
(1) public delegate void Method();
void f()
{
}
controls.BeginInvoke(new Method(f));
(2)public delegate void Method();
void f()
{
}
Method m1=new Method(f)/f;
controls.BeginInvoke(m1);
(3)
controls.BeginInvoke(new MethodInvoker(delegate()
{
}));
6.File.Create创建一个文件之后,然后用StreamReader来读取,说另一个进程正在使用该文件:Create方法调用后会返回一个打开的FileStream,关闭掉就可以了
if(!file1.Exists)
{
file1.Create().Close();
}或者
FileStream fs=File.Create(FilePath);
fs.Close();//这里没有关闭filestream;
1.workthread没有消息传递机制,所有在workthread中不能new form等需要消息循环的窗口。
2.写程序时遇到:在创建窗口句柄之前,不能在控件上调用 Invoke或begininvoke,查看代码是,new 了一个form,然后调用一线程,在线程中通过form.invoke来调用form控件,应该是没问题的,因为已经new form了,感觉应该有窗口句柄了,但是却报了以上错误。经查资料以及网上搜索,发现:new form后,窗口句柄并没有生成,只是在内存中有个form对象,只有当窗口真正显示出来时,窗口句柄才生成。所以,当new form后,还需form.show()之后,才真正生成窗口句柄。
3.form窗口消息传递:wndproc(窗口处理函数)-》onclick(引发click事件)——》form_click()事件。其中wndproc和on***都可以重载。
4.常用delegate代码:
Thread thread1 = new Thread(new ThreadStart(delegate()
{
}));
controls.BeginInvoke(new MethodInvoker(delegate()
{
}));
5.调用delegate:
(1) public delegate void Method();
void f()
{
}
controls.BeginInvoke(new Method(f));
(2)public delegate void Method();
void f()
{
}
Method m1=new Method(f)/f;
controls.BeginInvoke(m1);
(3)
controls.BeginInvoke(new MethodInvoker(delegate()
{
}));
6.File.Create创建一个文件之后,然后用StreamReader来读取,说另一个进程正在使用该文件:Create方法调用后会返回一个打开的FileStream,关闭掉就可以了
if(!file1.Exists)
{
file1.Create().Close();
}或者
FileStream fs=File.Create(FilePath);
fs.Close();//这里没有关闭filestream;
相关文章推荐
- 今天C#所遇到的问题杂记
- C#中使用多线程访问Winform问题解决方案
- c# 连接MySQL中文乱码问题的解决方法
- 如何使用 C# 压缩文件及注意的问题
- C#中类型分析中的常见问题 Type
- C# Oracle insert 过程中出现中文乱码问题
- Java vs C# —— 选择C#还是Java,归根到底还是平台问题
- C# WebApi Xml序列化问题解决方法:“ObjectContent`1”类型未能序列化内容类型“application/xml;charset=utf-8"的响应正文。...
- 【c# mono】项目迁移到mono下面编译出现问题。
- 强悍收集:VS2005(c#)项目调试一些常见问题解决方案
- [C#]关于调用Office应用程序后,程序不退出的问题
- 优化C#访问网络时的效率问题
- asp.net(c#)两时间段每天是星期几,周几(时间段日历显示)的问题解
- C# 线程间不能调用剪切板的问题
- C#中,double类型的精度问题(最好都看看)
- C#中Form的问题(转发)
- C#和C++联合调试时的小问题
- c#编写dll 供其他语言调用问题
- C#连接Oracle的问题(不安装客户端)
- C# 网络编程之豆瓣OAuth2.0认证具体解释和遇到的各种问题及解决