本帖最后由 bugttp 于 2010-12-16 02:48:48 编辑

解决方案 »

  1.   

    如果你在MyMethod里调用了UI控件,那么就不能用Thread调用MyMethod方法,除非使用代理。不过如果你需要strArray中的数据被同时调用或不需要待太久周期,就foreach起线程吧
      

  2.   

    线程中更新UI需要使用委托,或者其他方法
    参考:
    WinForm/Silverlight多线程编程中如何更新UI控件的值
      

  3.   

    引用 2 楼 findcaiyzh 的回复:
    线程中更新UI需要使用委托,或者其他方法
    参考:
    WinForm/Silverlight多线程编程中如何更新UI控件的值好帖
      

  4.   

    线程调用控件使用委托,invoke
    线程传递参数Thread th = new Thread(new ParameterizedThreadStart(method));
    th.Start("参数"));
    private void method(string s)
    {}
    public Thread(
      ParameterizedThreadStart start
    )
    public delegate void ParameterizedThreadStart(
      Object obj
    )
      

  5.   

    游戏规则:
    1、非UI线程调用UI线程中的属性、控件属性等,可以直接调用;
    2、非UI线程给UI线程的属性、控件属性等附值,通过#2楼的方法间接修改,当然用的多的还是委托;
    解决方案
    因为非UI线程多个同时做一样的事情,所以要加锁,推荐阅读
    http://blog.csdn.net/RoyYeah/archive/2009/11/13/4803380.aspxUI线程作为非UI线程们沟通的中介。
    你试试。