C#怎么定义一个委托,把方法当参数传进去,在线程里调用委托执行方法
展开全部
线程的构造函数有Thread(ThreadStart) 和Thread(ParameterizedThreadStart) ,也就是说只支持这两种委托:public delegate void ThreadStart()和public delegate void ParameterizedThreadStart(Object obj)。
对应的方法也就只能是类似的格式,
如public void Haha()之类的。
Thread th = new Thread(Haha);
th.start();
对应的方法也就只能是类似的格式,
如public void Haha()之类的。
Thread th = new Thread(Haha);
th.start();
展开全部
搞不懂了。。既然是传方法:把那个类,或者窗体传进去可以么。先把那方法设为Public
然后对象点 方法名不就可以么
然后对象点 方法名不就可以么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1,首先定义一个委托和类,其中DoSomeThing是线程要执行的方法:
/// <summary>
/// 定义委托
/// </summary>
delegate void DelegateThreadFunction ();
/// <summary>
/// 线程类
/// </summary>
class DelegateThread
{
//委托对象
private DelegateThreadFunction threadFunction;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="threadFunction"></param>
public DelegateThread(DelegateThreadFunction threadFunction)
{
this.threadFunction = threadFunction;
}
/// <summary>
/// 执行线程函数
/// </summary>
public void DoSomeThing()
{
if (threadFunction != null )
{
threadFunction();
}
}
}
2,定义要传入的方法,方法要和委托一致:
static void dosomething()
{
}
3,执行线程:
DelegateThread delegateThread = new DelegateThread(dosomething);
Thread th = new Thread( new ThreadStart (delegateThread.DoSomeThing));
th.Start();
你看看如何
/// <summary>
/// 定义委托
/// </summary>
delegate void DelegateThreadFunction ();
/// <summary>
/// 线程类
/// </summary>
class DelegateThread
{
//委托对象
private DelegateThreadFunction threadFunction;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="threadFunction"></param>
public DelegateThread(DelegateThreadFunction threadFunction)
{
this.threadFunction = threadFunction;
}
/// <summary>
/// 执行线程函数
/// </summary>
public void DoSomeThing()
{
if (threadFunction != null )
{
threadFunction();
}
}
}
2,定义要传入的方法,方法要和委托一致:
static void dosomething()
{
}
3,执行线程:
DelegateThread delegateThread = new DelegateThread(dosomething);
Thread th = new Thread( new ThreadStart (delegateThread.DoSomeThing));
th.Start();
你看看如何
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询