Доброго времени суток всем!
Пишу небольшой websocket client для взаимодействия с веб-сервисом. Для этого подключаю стороннюю библиотеку websocket-sharp.
Если упростить, то задача клиента состоит в том, чтобы вызвать определенные методы сервиса и обработать их. Как известно, при возвращении методом значения, срабатывает событие OnMessage() сокета. То есть таким образом, можно отлавливать все возвращаемые результаты методов данного веб-сервиса.
В моем случае, я помещал полученные значения в ArrayList, для дальнейшего его использования. Лист заполнялся значениями, но при его использовании, в том же методе main(), он всегда оказывался пустым. Как будто никакого заполнения и не происходило.
Вот как я это делаю в коде:
class Service
{
static ArrayList list = new ArrayList();
static void Main(string[] args)
{
using (var ws = new WebSocket(WSSpathToService))
{
ws.Connect();
ws.Send(someJsonCommandToService);
ws.OnMessage += (sender, e) =>
{
//заполняем коллекцию.
list.Add(e.Data);
//Тут размер list > 0
};
//вот тут list уже пустой
foreach (var item in list)
{
Console.WriteLine(item);
}
ws.Close();
}
}
}
Как выяснилось позже, добавление значении в коллекцию в событие OnMessage() и выборка данной коллекции происходят в разных потоках. Отсюда вопрос, как в консольном приложении правильно заполнить коллекцию значениями, полученными в рамках события onMessage(), и передать его в главный поток, для дальнейшего использования ?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как было указано в заголовке, не получается правильно извлечь Date из переменной DateTimeВот мой код:
Как создать новый проект в существующем решении в Visual Studio на Mac?
Люди добрые, помогитеПерешёл с UWP на WPF, по этому не могу простое
https://githubcom/RobinBuschmann/sequelize-typescript#foreignkey-belongsto-hasmany-hasone-belongstomany-api