У меня есть два потока в c #. Теперь мне нужно дождаться выполнения определенного оператора, прежде чем я смогу продолжить выполнение в другом потоке, что, очевидно, является случаем синхронизации.
Есть ли код, который может выполнить это, как при использовании встроенного метода?
Это пример кода:
public void StartAccept()
{
try
{
newSock.BeginAccept(new AsyncCallback(Accepted), newSock);
}
catch (ArgumentException)
{
MessageBox.Show("Error in arguments while using begin-accept", "Error", MessageBoxButtons.OK);
}
catch (ObjectDisposedException)
{
MessageBox.Show("socket closed while using begin-accept", "Error", MessageBoxButtons.OK);
}
catch (SocketException)
{
MessageBox.Show("Error accessing socket while using begin-accept", "Error", MessageBoxButtons.OK);
}
catch (InvalidOperationException)
{
MessageBox.Show("Invalid operation while using begin-accept", "Error", MessageBoxButtons.OK);
}
catch (Exception)
{
MessageBox.Show("Exception occurred while using begin-accept", "Error", MessageBoxButtons.OK);
}
}
Получает данные от желаемого хоста, который выбран кодом:
private void listBox1_Click(object sender, EventArgs e)
{
String data = (String)this.listBox1.SelectedItem;
ip = Dns.GetHostAddresses(data);
clientIP = new IPEndPoint(ip[0], 5555);
newSock.Bind(clientIP);
newSock.Listen(100);
}
Итак, чтобы начать получать данные, мне нужно инициализировать сокет для конкретного удаленного хоста, что делается, когда я нажимаю на один из хостов, показанных в списке.
Для этого мне нужна синхронизация.