使用string类型的参数进行线程处理

时间:2011-08-29 01:07:20

标签: c# multithreading parameters casting delegates

使用ParameterizedThreadStart几乎可以工作,但它需要对象作为参数,这感觉非常错误。是否可以通过ParameterizedThreadStart传递String?

        public void OpenUDirectory(String Directory)
        {
              Items.Clear();
              foreach (FileInfo FI in new DirectoryInfo(Directory).GetFiles())
              {
                    Items.Add(FI.Name);
              }
        }

我提出了向ParameterizedThreadStart添加扩展构造函数的想法,以便我可以将String转换为Object并调用基本方法,但是有更简洁的方法吗?

我确定我需要调用Invoke方法,所以我有一个委托:

    public delegate void OpenDD(String Directory);

1 个答案:

答案 0 :(得分:3)

启动主题时,您必须将框设为object。然后将其重新投射到string并调用您的方法。

这是它的工作方式,因为它提供了最大的灵活性。