关于线程的一个问题

贝克汉鸭 2009-07-01 04:42:28
现在有A,B两个类,B类中有方法C,C带一个参数。
想在A类中通过线程调用C方法,并传入一个参数,请问应该怎么写
...全文
35 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovvver 2009-07-02
  • 打赏
  • 举报
回复
线程参数,你可以通过调用当前类的成员变量来实现这个目的。
你可以可以通过使用ThreadPool来实现给线程传参数的目的。
netcoder 2009-07-02
  • 打赏
  • 举报
回复
9楼正解!
conan19771130 2009-07-02
  • 打赏
  • 举报
回复
委托可以
duping9626 2009-07-02
  • 打赏
  • 举报
回复

public class A
{

public delegate void MyHandler(object obj);

public void Run()
{
BX b = new B();
//如果你是用.net 2.0(VS2005+)以上,则可以用ParameterizedThreadStart,直接传参数
Thread t = new Thread(new ParameterizedThreadStart(b.C));
t.Start("aaaa");//参数

//-----------------------------------------------------------
//如果你是用.net 1.1(VS2003),则可以使用委托
MyHandler h = new MyHandler(b.C);
//不需回调的话,直接传null,null,要回调另用回调函数
IAsyncResult ir =h.BeginInvoke("aaaaa", null, null);
h.EndInvoke(ir);
}
}

public class B
{
public void C(object obj)
{
Console.WriteLine(obj);
}
}
cnzdgs 2009-07-01
  • 打赏
  • 举报
回复
线程可以传参数。例如:
class B
{
public void C(object o)
{
}
}


B b = new B();
Thread thread = new Thread(b.C);
thread.Start(1);
zhaoweiting0609 2009-07-01
  • 打赏
  • 举报
回复
用委托吧
掌握未来2019 2009-07-01
  • 打赏
  • 举报
回复
将方法C中的参数设置成B类的参数
B Test=new B()
Test.C的参数=数据;
thread t=new thread(new threadStart(B.C))
t.Start()
pjw216 2009-07-01
  • 打赏
  • 举报
回复
起线程时是无法传参数的,所以你得在别出完成传参数的操作.
建议在B类的构造函数中传参,这样C中就自然得到这个参数了.
然后在A类中写:(如果C方法是静态的,不是静态的就先申明一个 B的对象b,然后用b.C)
Thread myThread=new Trhead(new ThreadStart(B.C));
myThread.Start();
就开始执行C方法了.
xxyping 2009-07-01
  • 打赏
  • 举报
回复
不是吧,可以将参数房子方法里面的C的调用里啊
windinwing 2009-07-01
  • 打赏
  • 举报
回复
用异步委托也行了,反正都是用线程,效率还高一些
blueskyc 2009-07-01
  • 打赏
  • 举报
回复
直接用B类的构造函数,用构造函数把需要的参数传进来,而C方法不用参数,线程不能用带参数的方法
feiyun0112 2009-07-01
  • 打赏
  • 举报
回复
把参数改成用B类中的字段

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://feiyun0112.cnblogs.com/
showsunrise 2009-07-01
  • 打赏
  • 举报
回复
xxyping 2009-07-01
  • 打赏
  • 举报
回复
直接声明B类

B b=new B();

A 中直接采用b.C(参数1),将结果返回来不就可以了么,还需要其他的什么嘛
就写在线程里
Profiteerchen 2009-07-01
  • 打赏
  • 举报
回复
线程不能传参数吧?只能通过别的途径。

110,537

社区成员

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

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

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