public VlazhnostForm()
{
InitializeComponent();
server = new IPEndPoint(Dns.GetHostAddresses(Dns.GetHostName())[Dns.GetHostAddresses(Dns.GetHostName()).Length - 1], port);
socketServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socketServer.Bind(server);
socketServer.Listen(10);
VlazhnostTimerTread = new Thread(HumidityReception);
VlazhnostTimerTread.IsBackground = true;
VlazhnostTimerTread.Start();
}
/// <summary>
/// Принимает на постоянной основе данные
/// </summary>
private void HumidityReception()
{
while (true)
{
Socket socketWithData = socketServer.Accept();
if (socketWithData.Available > 0)
{
byte[] buffer = new byte[256];
string data;
do
{
byte size = (byte)socketWithData.Receive(buffer);
data = Encoding.UTF8.GetString(buffer, 0, size);
} while (socketWithData.Available > 0);
ReceiveList.Items.Add(new ListViewItem(data));//System.InvalidOperationException: "Недопустимая операция в нескольких потоках: попытка доступа к элементу управления 'ReceiveList' не из того потока, в котором он был создан."
ReceiveList.Refresh();
}
Thread.Sleep(2000);
}
}