2013-05-05 54 views
0

您好,我正在嘗試創建一個可以持續運行的線程,直到程序結束。此線程的目的是在用戶添加一個新泵並將pumpID傳遞給WCF時繼續獲取ID,然後將該ID添加到組合框中。我不知道這是否是接近它的方式,但我有這樣的代碼片段,它試圖實現我的問題不斷從WCF獲取ID's

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然而,許多泵我啓動。

回答

0

你似乎沒有通過任何WCF。

您需要先更新wcf IDs列表,然後才能從中獲取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()); 
}