Потоки с параметрами типа string - PullRequest
1 голос
/ 29 августа 2011

Использование ParameterizedThreadStart почти сработало бы, но для него требуется объект в качестве параметра, что выглядит очень неправильно.Можно ли передать String через ParameterizedThreadStart?

        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 Ответ

3 голосов
/ 29 августа 2011

Вы должны боксировать как object при запуске потока.Затем приведите его обратно к string и вызовите свой метод.

Так оно и работает, поскольку оно обеспечивает максимальную гибкость.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...