我确实有一个嵌入板(迷你/微小210) 和我没有尝试建立其使用system.socket和system.socket.ne吨在C#(VS2005应用 - wince5设备应用但我确实有我的设备上的wince 6 !!)mini210插座多线程
我的目的是使用以太网发送和接收数据字节。发送,没有问题,但接收确实需要多任务处理。
我应该开始一个任务,这样它可以监听端口,如果有任何数据即将出现,但是一旦我将线程部分添加到我的代码中,整个程序崩溃(不会在pc x64 core i5中执行此操作),而是在嵌入式主板它会崩溃。
如果我消除了多任务处理时networkstream.read不在线或者我可能会失去一些数据时networkstream.read处于联机状态,我在等数据,在程序从而结束,直到不会响应了时间到。这里是我的一些代码。希望能帮助到你。
这个代码工作:
private void button_connect_Click(object sender, EventArgs e)
{
try
{
//Thread TH = new Thread(new ThreadStart(con));
//TH.Start();
con();
}
catch
{
MessageBox.Show("THREAD ERROR");
}
}
public void con()
{
try
{
cli = null;
cli = new TcpClient();
cli.Connect(IPAddress.Parse(textBox_ip.Text),Convert.ToInt32(textBox_port.Text));
st = null;
st = cli.GetStream();
button_connect.Enabled = false;
button_Close.Enabled = false;
button_disconnect.Enabled = true;
statusBar1.Text = "Connected to server";
//Thread rec = new Thread(new ThreadStart(recf));
//rec.Start();
}
catch
{
MessageBox.Show("Connection faild","Error");
statusBar1.Text = "Faild to connect to server";
}
这个代码剂量不工作:
private void button_connect_Click(object sender, EventArgs e)
{
try
{
Thread TH = new Thread(new ThreadStart(con));
TH.Start();
//con();
}
catch
{
MessageBox.Show("THREAD ERROR");
}
}
public void con()
{
try
{
cli = null;
cli = new TcpClient();
cli.Connect(IPAddress.Parse(textBox_ip.Text),Convert.ToInt32(textBox_port.Text));
st = null;
st = cli.GetStream();
button_connect.Enabled = false;
button_Close.Enabled = false;
button_disconnect.Enabled = true;
statusBar1.Text = "Connected to server";
//Thread rec = new Thread(new ThreadStart(recf));
//rec.Start();
}
catch
{
MessageBox.Show("Connection faild","Error");
statusBar1.Text = "Faild to connect to server";
}
}
,你可以看到我得到这个崩溃,只是我的任务之一是在代码第二个任务已被评论
我很感谢你的帮助提前