做一个局域网聊天器,用户打开软件显示form1,form1后台会运行一个线程TcpThread,用来侦听是否有需要通信的请求,当有请求时,弹出form2,进行聊天,上代码:
private void Form1_Load(object sender, EventArgs e)
{
... ...
TcpThread = new Thread(listen);
TcpThread.Start();
... ...
}
private void listen()
{
... ...
TcpListener = new TcpListener(ip, 20000);
TcpListener.Start();
... ....//收到请求
Form2 talk = new Form2();
Thread thread = new Thread(new ThreadStart(delegate() { talk.Show(owner); }));
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
... ...
}
thread.SetApartmentState(ApartmentState.STA);如果不加这句会报DragDrop注册失败,加上这句不报错了,但是form2一闪而过就消失了,怎么解决?
private void Form1_Load(object sender, EventArgs e)
{
... ...
TcpThread = new Thread(listen);
TcpThread.Start();
... ...
}
private void listen()
{
... ...
TcpListener = new TcpListener(ip, 20000);
TcpListener.Start();
... ....//收到请求
Form2 talk = new Form2();
Thread thread = new Thread(new ThreadStart(delegate() { talk.Show(owner); }));
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
... ...
}
thread.SetApartmentState(ApartmentState.STA);如果不加这句会报DragDrop注册失败,加上这句不报错了,但是form2一闪而过就消失了,怎么解决?
解决方案 »
- c#能否从注册表中准确得出例如迅雷等的安装路径?
- 请教大家一个问题c#可以写入一个消息框吗?或者其他什么办法,帮忙看下思路谢谢了...
- 拍拍API接口调用返回的Response是网页源码,请问是什么原因?
- 谁能教教我用ListView制作导航界面啊
- 网页编程中大量应用服务器控件,网页刷新下,就提示什么避免重复交易之类的话,怎么解决?很急
- C#字符串循环取值放到字符串数组中,急等,急,急
- 菜鸟求解,C#里listbox的问题
- win form 的菜鸟问题:
- (c#)tcpclient 和tcplistener双向通信
- 调用ACCESS数据库时出现:无法启动应用程序。工作信息文件丢失,火势已被其他用户以独占方式打开
- 帮忙看一下下面的代码有什么问题,控制台程序
- C#Socket程序出现一个怪问题 求解
Form2 f2;在线程里按如下方法初始化并显示f2 试试
{
........
this.Invoke(new MethodInvoker(() => { f2= new Form2(); f2.Show(); }));
.......
}