c#多线程刷新界面
这个问题也不知道难倒了多少C#豪杰。比起MFC的界面刷新,在WINFORM中来实现多线程刷新真是很痛苦,故写此文。
多线程刷新界面主要用到多线程,委托,线程安全、事件等一系列高难度的C#操作。
关于委托和事件,这有一篇很易懂的文章:hi.baidu.com/anglecloudy/blog/item/a52253ee804d052f2df534ab.html
===============================================
先从一个简单的例子说起,是一个没有考虑线程安全的写法:
先在一个FORM类里面定义一个委托和事件:
protected delegate void UpdateControlText1(string str);
//定义更新控件的方法
protected void updateControlText(string str)
{
this.lbStatus.Text = str ;
return;
}
在线程函数里面加上下面的内容
UpdateControlText1 update = new
UpdateControlText1(updateControlText);//定义委托
this.Invoke(update,
"OK");//调用窗体Invoke方法
这个线程函数必须是类的线程函数,这样用很方便,但有很高的局限性,下面来说个复杂的。
==============================================
先定义一个独立的类
public
class
MoreTime
{
public
delegate
void
InvokeOtherThead(
int
i);//委托
public
InvokeOtherThead MainThread;//事件
public
void
WaitMoreTime()
{
for
(
int
i
=
0
; i
<
20
;i
++
)
{
&n
相关文档:
添加引用
using System.Data.OracleClient;
主要用到了两个类
System.Data.OracleClient.OracleConnection 表示一个到数据库的连接。此类无法继承。
System.Data.OracleClient.OracleCommand 表示针对数据库执行的 SQL 语句或存 ......
//以下来自:http://msdn.microsoft.com/zh-cn/library/sf985hc5.aspx
abstract(C# 参考)
更新:2007 年 11 月
abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用 abstract 修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。
示例 ......
以下参考 :http://msdn.microsoft.com/zh-cn/library/87d83y5b.aspx
接口(C# 参考)
更新:2007 年 11 月
接口只包含方法、属性、事件或索引器的签名。成员的实现是在实现接口的类或结构中完成的,如下面的示例所示:
示例
interface ISampleInterface
{
void SampleMethod();
}
class Implem ......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace 将枚举作为键值的形式存储
{
enum Myenum
{
First=3,
Second ......