客户端无法启动建议循环

时间:2010-08-06 07:44:59

标签: c# dde

我正在使用NDde进行DDE交易。我正在尝试使用线程创建DdeClient的多个实例。对于这个例子,我们假设有3个线程。如果我用一个线程尝试它,它的工作原理。但是超过2的任何东西都会给我一个错误,因为它无法启动建议循环。问题是,当它是多线程的并且每个线程都有自己的“建议”处理程序时,它为什么不起作用?任何帮助都会很棒

我做了什么: 1)在一个循环中,我调用了Thread t = new Thread(CreateDdeThread);链接到私有void CreateDdeThread(对象数据) 2)在private 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);
    }
}

0 个答案:

没有答案