C# 使用线程你可能不知道的问题
2010-03-27 07:52
218 查看
前些天有个朋友问我,他在做WinForm 程序,其中使用到了线程。
当时我听到线程我就懵了,其一 我很久都没有使用过线程了,其二 线程说实话有些难,其三 遇到线程稀奇古怪的问题我真的很难回答。当时我就模糊的回答了他一下,就这样勉强的回避了他的问题,因为之前我总是不断的去回避线程这个问题,你说线程简单也简单,你说难也难。与我来说线程真的是个麻烦事,我一直都是采用回避政策,今天我查阅了之前自己写过的一个WinForm 扫雷游戏,其中就使用过线程。
1.在WinForm 中使用线程和定时器控制动画
代码
1 public void ExitApplication()
2 {
3 if (this.panelButton.Controls!=null)
4 {
5 this.panelButton.Controls.Clear();
6 }
7
8 for(int i=0;i<1000;i++)
9 {
if(this.Opacity<0.1)
{
this.ExitProcess();
Application.Exit();
}
this.Opacity=this.Opacity-0.004;
Thread.Sleep(20);
}
this.main.Dispose();
}
其实这个效果就是控制窗体的透明度,渐变效果。这也是线程哦。
当时我听到线程我就懵了,其一 我很久都没有使用过线程了,其二 线程说实话有些难,其三 遇到线程稀奇古怪的问题我真的很难回答。当时我就模糊的回答了他一下,就这样勉强的回避了他的问题,因为之前我总是不断的去回避线程这个问题,你说线程简单也简单,你说难也难。与我来说线程真的是个麻烦事,我一直都是采用回避政策,今天我查阅了之前自己写过的一个WinForm 扫雷游戏,其中就使用过线程。
1.在WinForm 中使用线程和定时器控制动画
代码
1 public void ExitApplication()
2 {
3 if (this.panelButton.Controls!=null)
4 {
5 this.panelButton.Controls.Clear();
6 }
7
8 for(int i=0;i<1000;i++)
9 {
if(this.Opacity<0.1)
{
this.ExitProcess();
Application.Exit();
}
this.Opacity=this.Opacity-0.004;
Thread.Sleep(20);
}
this.main.Dispose();
}
其实这个效果就是控制窗体的透明度,渐变效果。这也是线程哦。
相关文章推荐
- 黄聪:C# 使用线程你可能不知道的问题
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
- 无比奇怪的问题,Runtime报错,程序仍可运行(有可能是线程崩溃,但主程序不崩溃,线程崩溃可能是因为锁使用不当引起的)
- c#中跨线程调用windows窗体控件 .我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。
- C# 子线程使用主线程中的控件问题
- C#中使用存储过程可能出现的问题
- c#中使用多线程访问winform中控件的若干问题 解决线程间操作无效: 从不是创建控件的线程访问它
- EF(Entity Framework)发生错误”正在创建模型,此时不可使用上下文“的解决办法。 正在创建模型,此时不可使用上下文。如果在 OnModelCreating 方法内使用上下文或如果多个线程同时访问同一上下文实例,可能引发此异常。请注意不保证 DbContext 的实例成员和相关类是线程安全的。 临时解决了这个问题,在Context的构造函数中,禁用了自动初始化:
- 在C#中使用SerialPort类实现串口通信 遇到多线程问题
- 使用无限大小线程池 newCachedThreadPool 可能遇到的问题
- WinCE5.0移动平台开发笔记(c#中使用多线程访问winform中控件的若干问题(zt))
- 【转】C#子线程使用FolderBrowserDialog的问题延伸
- 关于Qt中使用线程的时候函数具体在哪个线程中运行的问题
- C#导出EXCEL超大数据源码,解决内存溢出问题,使用OLEDB方式(NPOI做不到)
- C#调用exe解决PDF转图片问题(使用PDFBox方案,java语言编译jar包实现)
- c#线程同步使用详解示例
- C#中的线程(三) 使用多线程
- C# 解决引用dll,出现dll不可以使用等问题
- c#线程问题(1)