这个错误是怎么回事?

wid999 2019-06-17 03:00:18


    class Haha
{
public string haha;
}
...全文
178 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wid999 2019-06-17
  • 打赏
  • 举报
回复
引用 15 楼 大牌鸡腿 的回复:
public delegate void ParameterizedThreadStart(object obj);
主要是参数类型不一致


有看到那句,没注意到那个object。习惯地以为微软可以支持任意类型的参数。
大牌鸡腿 2019-06-17
  • 打赏
  • 举报
回复
引用 14 楼 wid999 的回复:
[quote=引用 12 楼 大牌鸡腿 的回复:] going的参数换成object thrd = new Thread(going); private void going(object hahaha) { while (!blQuitRequred) { Console.WriteLine(Thread.CurrentThread.ManagedThreadId.ToString() + ":" + hahaha); Thread.Sleep(1000); } }
让人汗颜的错误啊[/quote] public delegate void ParameterizedThreadStart(object obj); 主要是参数类型不一致
wid999 2019-06-17
  • 打赏
  • 举报
回复
引用 12 楼 大牌鸡腿 的回复:
going的参数换成object
thrd = new Thread(going);

private void going(object hahaha)
{
while (!blQuitRequred)
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId.ToString() + ":" + hahaha);
Thread.Sleep(1000);
}
}


让人汗颜的错误啊
大牌鸡腿 2019-06-17
  • 打赏
  • 举报
回复
thrd = new Thread(going); thrd .Start("hahaha");
大牌鸡腿 2019-06-17
  • 打赏
  • 举报
回复
going的参数换成object thrd = new Thread(going); private void going(object hahaha) { while (!blQuitRequred) { Console.WriteLine(Thread.CurrentThread.ManagedThreadId.ToString() + ":" + hahaha); Thread.Sleep(1000); } }
wid999 2019-06-17
  • 打赏
  • 举报
回复
    class Haha
{
public string haha;
}

class A
{
Haha haha;
Thread thrd;
bool blQuitRequred = false;

public void go(string aha)
{
haha = new Haha() { haha = aha };
gogogo();
}

public void go(Haha aha)
{
haha = aha;
gogogo();
}

private void gogogo()
{
if (thrd != null)
if(thrd.ThreadState== ThreadState.Running)
thrd.Abort();
blQuitRequred = false;
thrd = new Thread(new ParameterizedThreadStart(going));
thrd.Start(haha.haha);
}

public void stop()
{
blQuitRequred = true;
}

private void going(string hahaha)
{
while (!blQuitRequred)
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId.ToString() + ":" + hahaha);
Thread.Sleep(1000);
}
}
}


改了以后:


弄得我没脾气……

正怒月神 2019-06-17
  • 打赏
  • 举报
回复
引用 9 楼 wid999 的回复:
[quote=引用 6 楼 正怒月神 的回复:] 不知道你用的哪个命名空间的thread 反正我这里毫无问题
要带参数运行线程。不是不带参数的。 刚刚看了“情似生活”的贴子,试了下带参数运行线程才发现我的电脑居然不支持这程写法……[/quote] 带参数就直接 Thread t=new Thread(going); 因为new ThreadStar 没有带参数的方法重载。
wid999 2019-06-17
  • 打赏
  • 举报
回复
引用 6 楼 正怒月神 的回复:
不知道你用的哪个命名空间的thread
反正我这里毫无问题


要带参数运行线程。不是不带参数的。
刚刚看了“情似生活”的贴子,试了下带参数运行线程才发现我的电脑居然不支持这程写法……
wid999 2019-06-17
  • 打赏
  • 举报
回复
引用 6 楼 正怒月神 的回复:
不知道你用的哪个命名空间的thread
反正我这里毫无问题


using System.Threading;
wid999 2019-06-17
  • 打赏
  • 举报
回复
using System.Threading;
正怒月神 2019-06-17
  • 打赏
  • 举报
回复
不知道你用的哪个命名空间的thread 反正我这里毫无问题
wid999 2019-06-17
  • 打赏
  • 举报
回复
引用 3 楼 正怒月神 的回复:
或者直接 going也可以

MSDN上的示例:
Thread newThread = new Thread(Work.DoWork);

我的电脑上不承认那种写法……
wid999 2019-06-17
  • 打赏
  • 举报
回复
引用 2 楼 正怒月神 的回复:
红线处,改成 new ThreadStart(going)

一样的错误提示。要是那样可以的话就不会发这个贴子了
正怒月神 2019-06-17
  • 打赏
  • 举报
回复
或者直接 going也可以
正怒月神 2019-06-17
  • 打赏
  • 举报
回复
红线处,改成 new ThreadStart(going)
wid999 2019-06-17
  • 打赏
  • 举报
回复
环境:VS2010,DotNetFramework4.0

111,092

社区成员

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

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

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