不断从WCF获取ID

时间:2013-05-05 14:57:24

标签: c# multithreading wcf c#-4.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但是我启动了很多泵。

1 个答案:

答案 0 :(得分:0)

你的好像并没有传递给WCF。

在从中获取ID之前,您需要更新wcf 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());
}