您的位置:首页 > 编程语言 > C#

C# 如果何从线程中操作控件

2008-05-09 10:31 162 查看
下面是一个监控UDP接收的线例子:

1

//申明委托
2

public delegate void mydelegate();
3

//添加调用控制的方法
4

public void outtext()
5





{
6

textBox1.Text = Read_str;
7


8

}
9

public void start_server()
10





{
11

while (true)
12





{
13

//接收从远程主机发送到本地8090端口的数据
14

byte[] recData = server.Receive(ref receivePoint);
15

ASCIIEncoding encode = new ASCIIEncoding();
16

//获得客户端请求数据
17

Read_str = encode.GetString(recData);
18

//提取客户端的信息,存放到定义为temp的字符串数组中
19

//string[] temp = Read_str.Split("/".ToCharArray());
20

//在线程中调用对象;
21

mydelegate mydelegate = new mydelegate( outtext );
22

//BeginInvoke/invoke(同步或异步) 方法来将调用封送到适当的线程
23



textBox1.BeginInvoke(mydelegate, new object[]

{ });
24


25

}
26

}
27

public void run()
28





{
29

//利用本地8080端口号来初始化一个UDP网络服务
30

server = new UdpClient(port);
31

receivePoint = new IPEndPoint(new IPAddress(ip), port);
32

//开一个线程
33

startServer = new Thread(new ThreadStart(start_server));
34

//启动线程
35

startServer.Start();
36


37

}
38

private void Form1_Load(object sender, EventArgs e)
39





{
40

//启动对时服务
41

run();
42


43

}

参考文章:
http://msdn2.microsoft.com/zh-cn/library/757y83z4(VS.80).aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: