Доброе утро.
Возьмем такой простой сценарий: у меня есть NetClient
, который подключается к удаленному серверу, используя метод void Connect()
; По завершении NetClient возникает событие Connected
.
Мне нужно обернуть это NetClient
другому вызывающему, который не может управлять асинхронной логикой, как это: этот вызывающий хочет метод синхронизации Connect()
, который возвращает true, если в порядке (для простоты пока не думайте об ошибках подключения)
Код выглядит так:
public class Client
{
NetClient m_NetClient = new NetClient();
public void Connect(string ip, int port)
{
m_NetClient = new NetClient();
m_NetClient.Connected += _NetClient_Connected;
m_NetClient.Connect(ip, port);
}
private void _NetClient_Connected(object sender, EventArgs e)
{
//...
}
}
Что я могу сделать, чтобы синхронизировать эту логику? Мне нужно создать новый поток в обработчике событий, чем использовать что-то вроде класса Monitor?
Может ли кто-нибудь дать мне свой опионин / код для достижения этой цели?
Спасибо всем!