上次的问的是如果在线程安全中传递2个以上参数,非常感谢大侠们的帮忙。
http://topic.csdn.net/u/20080418/21/42fc2f99-1367-4fdf-bddc-2aa5f50dcb73.html现在本人又遇到新问题了,就是如何实现带返回值的函数啊 上面链接中的都是void        delegate ListViewItem setListViewItemsCallBack(ListView sender, int i);        private ListViewItem setListViewItems(ListView sender, int i)
        {
            if (sender.InvokeRequired)
            {
                setListViewItemsCallBack b = new setListViewItemsCallBack(setListViewItems);
                return this.Invoke(b, new object[] { sender, i });
            }
            else
            {
               return sender.Items[i];
            }
        }
出错提示:
无法将类型“object”隐式转换为“System.Windows.Forms.ListViewItem”。存在一个显式转换(是否缺少强制转换?)把object 改成ListViewItem 也一样出错。

解决方案 »

  1.   

    感觉这样用起来真费劲,呵呵
            delegate ListViewItem setListViewItemsCallBack(ListView sender, int i);        private ListViewItem setListViewItems(ListView sender, int i)
            {
                if (sender.InvokeRequired)
                {
                    setListViewItemsCallBack b = new setListViewItemsCallBack(setListViewItems);
                    return this.Invoke(b, new object[] { sender, i }) as ListViewItem;
                }
                else
                {
                    return sender.Items[i];
                }
            }
      

  2.   

    LZ的需求与众不同;
    试试:return sender as ListViewItem;
      

  3.   

    参见http://www.cnblogs.com/gaoliqing/archive/2007/11/20/965237.html
      

  4.   

    changjiangzhibin 的办法不行
    在看ing funlove999的链接
      

  5.   

    看不明白楼主的需求。  
    在一个setListViewItemsCallBack委托里面,再创建委托。应该不是好办法。请详细描述下你的需求。
      

  6.   

    打个比方,一般情况下,我们在线程中要更新winform中界面 实现的是对界面控件text属性等的赋值,如实现类似comboBox.text = sss的功能。
    现在我要在线程中调用界面控件的方法 如类似 ListViewItem ddd=listview.items[i];这样的功能。 因为在线程中不能直接对listview操作。
    不知道我表达的是否清楚,刚学c#,谢谢大家。  
      

  7.   

    funlove999推荐的东东不错,讲的很系统,收藏了,谢谢!
    我看明白60-70% 但还是不知道我的功能怎么实现。
      

  8.   

    其实推荐你用SynchronizationContext,比这个好看多了
      

  9.   

    哈哈 每次都看花眼 谢谢lake_cx  抱抱