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
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
相关文章推荐
- C# 如果何从线程中操作控件
- C# 如果何从线程中操作控件
- C# 如果何从线程中操作控件
- C# 如果何从线程中操作控件
- C# 线程操作 出现“从不是创建控件lstUser的线程访问它”错误的解决方法
- C# 跨线程操作控件的线程安全性方法
- 在C#中子线程如何操作主线程中窗体上控件
- 2017.10.20 C#跨线程操作控件的线程安全方法
- C#跨线程操作控件 通过委托处理,MSDN上又很详细用法的说明
- C#跨线程操作控件
- c#中使用多线程访问winform中控件的若干问题 解决线程间操作无效: 从不是创建控件的线程访问它
- 在C#中子线程如何操作主线程中窗体上控件
- C#中工作线程和多线程跨线程操作控件
- 【转】C#线程间操作无效: 从不是创建控件" XX" 的线程访问它
- BackGroundWorker解决“线程间操作无效: 从不是创建控件的线程访问它” (C# VS2008)
- C#中线程间操作无效: 从不是创建控件 txtBOX 的线程访问它
- c#非委托方式在子线程里操作UI控件(实际上运算逻辑在子线程,更新还是在主线程,解决了UI界面无响应的问题)
- C#跨线程操作控件
- C#---线程间操作无效: 从不是创建控件“txtreceive”的线程访问它
- 4000 c#关于“线程间操作无效: 从不是创建控件的线程访问它”的问题