我確實有一個嵌入板(迷你/微小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";
}
}
,你可以看到我得到這個崩潰,只是我的任務之一是在代碼第二個任務已被評論
我很感謝你的幫助提前