Я использую NDde для транзакций DDE.Я пытаюсь создать несколько экземпляров DdeClient с помощью потоков.Для этого примера мы предположим, что есть 3 потока.Если я попробую с одним потоком, это работает.Но все, что больше 2, возвращает мне ошибку, из-за которой не удалось запустить цикл извещения.Вопрос в том, почему он не будет работать, если он многопоточный и каждый поток имеет свой собственный обработчик «посоветовать»?Любая помощь будет очень полезна
Что я сделал: 1) В цикле я назвал Thread t = new Thread (CreateDdeThread);который связан с приватным void CreateDdeThread (данные объекта) 2) В приватном void CreateDdeThread (данные объекта) я создаю DdeClient с их необходимыми обработчиками событий.
private void CreateDdeThread(object data)
{
Console.WriteLine("CreateDdeThread");
Spark spark = (Spark)data;
DdeClient ddeClient = new DdeClient("Client", spark.GetClient() + ".Name");
ddeClient.Disconnected +=new
EventHandler<DdeDisconnectedEventArgs>(OnDisconnected);
ddeClient.Connect();
ddeClient.Advise += new EventHandler<DdeAdviseEventArgs>(OnAdvise);
ddeClient.StartAdvise(
"Address." + spark.GetStreet(), 1, true, true, 60000, ddeClient);
}
private void OnAdvise(object sender, DdeAdviseEventArgs args)
{
string[] p = args.Text.Split(new string[] { "\n" }, StringSplitOptions.None);
foreach (string s in p)
{
Console.WriteLine(s);
}
}