0

嗨,我正在尝试制作一个持续运行直到程序结束的线程。此线程的目的是在用户添加新泵并将 pumpID 传递给 WCF 时继续获取 ID,然后将 ID 添加到组合框。我不知道这是否是解决它的方法,但我有这段代码试图解决我的问题

private void Form1_Load(object sender, EventArgs e)
    {
        Thread get = new Thread(new ThreadStart(getID));
        get.IsBackground = true;
        get.Start();
    }

    private void getID()
    {
        IDList.Invoke(new MethodInvoker(storeID));
    }

    private void storeID()
    {
        if (!IDList.Items.Contains(WCFPOS.getIDs()))
        {
            IDList.Items.Add(WCFPOS.getIDs());
        }
    }

但是它只返回 0 但是我启动了多少泵。

4

1 回答 1

0

您似乎没有将任何内容传递给 WCF。

您需要先更新 wcf ID 列表,然后才能从中获取 id。

另外,您是否意识到,您正在执行方法WCFPOS.getIDs()两次!?

if (!IDList.Items.Contains(WCFPOS.getIDs()))
        {
            IDList.Items.Add(WCFPOS.getIDs());
        }

至少你可以改变你的代码来做一次,比如

var idList = WCFPOS.getIDs();

if(idList.Any() && 
   !IDList.Items.Contains(idList /*this logic also invalid, thins you are searching for list in the list */)
{
    //Are you adding single or multiple ids?
     IDList.Items.Add(WCFPOS.getIDs());
}
于 2013-05-05T17:41:47.103 回答