您好我正在尝试创建一个持续运行的程序,直到程序结束。此线程的目的是在用户添加新泵并将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但是我启动了很多泵。
答案 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());
}