c# - 使用字符串类型的参数进行线程化

标签 c# multithreading parameters casting delegates

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

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

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

我确定我需要调用 Invoke 方法,所以我有一个委托(delegate):
    public delegate void OpenDD(String Directory);

最佳答案

您必须将框设置为 object当你启动线程时。然后将其转换回 string并调用你的方法。

这就是它的工作方式,因为它提供了最大范围的灵 active 。

关于c# - 使用字符串类型的参数进行线程化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7225170/

相关文章:

c# - 如何规范化/规范化正则表达式模式?

multithreading - 如何在我的 bash 脚本中使用并行编程/多线程?

java - 并发 C++ 程序中的可见性

c# - 使用 GetAll() 和 GetByIds(int[] ids) 发现 Web API 多个操作

jquery - setInterval 参数之间的区别

c# - 从 ASP.Net 打印 PDF,无需预览

c# - 如何覆盖 Identity Server 4 中的默认错误路径?

c# - C# 中基本类型和常量的别名

Python 3 - 在用户将鼠标悬停在 GUI 窗口上之前,主线程未检测到后台线程中的键盘中断

parameters - 我们需要在 FM 启动时清除导出参数吗?