启动带参数的线程
前个星期,公司的项目在客户那里出现了点问题,情况为电话打入后,系统不能弹单(打入电话的时候会显示打入电话者的三字段信息:名字、电话、地址),经过检查后,发现为系统在向GIS系统发送数据的时候造成一个超时等待(GIS没有启动,但是我不明白的是我用的UdpClient,按理说不应该出现这种情况啊),考虑后,决定使用线程来解决这个问题,但是这个线程需要以带参数的形式启动,经过思考后,得出以下代码:
// 首先要写一个类,类里头包含了数据的发送,以构造函数的方式将REMOTE HOST、PORT、和要发送的数据构造进去。
#region send gis data
class SendGISData
{
private string strIP = "";
private string strData = "";
private int nRemotePort = -1;
// IP:目标机IP地址,Data:要发送的字符串数据,RemotePort:端口
public SendGISData(string IP,string Data,int RemotePort)
{
strIP = IP;
strData = Data;
nRemotePort = RemotePort;
}
public void UDPSendData()
{
int sendCount = 0;
System.Net.Sockets.UdpClient client = new System.Net.Sockets.UdpClient(strIP,nRemotePort);
byte[] data = new byte[strIP.Length];
try
{
client.Connect(strIP,nRemotePort);
data = Encoding.ASCII.GetBytes(strData);
sendCount = client.Send(data,data.Length);
}
catch
{
sendCount = -32767;
}
finally
{
client.Close();
}
}
}
#endregion
// 使用方法
using System.Threading;
....
....
....
SendGISData GISCtrl= new SendGISData("10.54.163.164","02887832222",8080);
ThreadStart threadStart = new ThreadStart(GISCtrl.UDPSendData);
Thread thread= new Thread(threadStart);
thread.Start();
posted on 2007-07-12 14:04 samuel's blog 阅读(810) 评论(2) 编辑 收藏 举报