c#没有与委托匹配的重载

qq_36483141 2017-04-04 11:12:13
private void method(string buffer)
{
//处理代码
}

private void Creatthread()
{
ThreadStart entry = new ThreadStart(method);
Thread workThread = new Thread(entry);
workThread.IsBackground = true;
workThread.Start();
}

然后出错了,如截图。查了一下,应该是method那里没有参数,可我不知道怎么解决。

...全文
5078 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sucaiwangpp 2021-04-14
  • 打赏
  • 举报
回复
把参数buffer的类型换成object即可,因为object是所有类型的父类。 执行的方法里有参数的时候,应该把参数放在Start()方法括号的中间,如:workThread.Start("字符串"); 如果想要参数转换的话,这里推荐几行代码:

int 新变量 = (int) 旧变量;     //显示转换
int 新变量 = Convert.ToInt32(旧变量);     //Convert类转换
int 新变量 = 旧变量 as int;     //使用as关键字转换,可以让object转换成自定义类型变量
xian_wwq 2017-04-05
  • 打赏
  • 举报
回复

using System;
using System.Threading;
public class Work
{
    public static void Main()
    {
      Thread newThread = new Thread(
                         new ParameterizedThreadStart(doWork)
                         );
      newThread.start("456");
      public static void doWork(object ob)
      {
        Console.WriteLine("123" + ob.ToString());
      }
    }
}
Poopaye 2017-04-04
  • 打赏
  • 举报
回复 1
请看下ThreadStart的定义,返回值和参数类型、个数要完全一致

111,088

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧